2017-04-24 4 views
2

Ich habe mehrere Abhängigkeiten innerhalb einer Gradle-Datei und ich führte eine neue Build-Variante Aufruf "Apple". Aber ich möchte nicht wie folgt kopieren und einfügen.Gradle Konfiguration Vererbung

dependencies { 
    debugCompile "com.android:libraryA:1.0.0"  
    debugCompile "com.android:libraryB:1.0.0"  
    debugCompile "com.android:libraryC:1.0.0"  

    appleCompile "com.android:libraryA:1.0.0"  
    appleCompile "com.android:libraryB:1.0.0"  
    appleCompile "com.android:libraryC:1.0.0"  
} 

Gibt es eine Möglichkeit, ich appleCompile hängt von debugCompile sagen kann?

+0

Wie definieren Sie 'Apfel'? Wenn Sie [initWith() '] (https://developer.android.com/studio/build/build-variants.html#build-types) verwenden, werden möglicherweise Abhängigkeiten kopiert, wenn die Abhängigkeiten vor der Definition definiert sind Der Build-Typ (dh 'Abhängigkeiten {}' erscheint vor 'android {}'). Ich habe das nicht versucht, also weiß ich nicht, ob es funktioniert. – CommonsWare

+1

@CommonsWare Ich benutzte apple.initwith (debug) und ich versuchte auch mit apple {initWith debug} und es kopiert nur über die Build-Variante config und nicht die Abhängigkeiten –

Antwort

1

Sie können eine neue Konfiguration deklarieren:

configurations { 
    [debugCompile, appleCompile].each { it.extendsFrom commonCompile } 
} 

Jetzt commonCompile Konfiguration Abhängigkeiten gelten für beide debug und apple Konfigurationen, so brauchen Sie nicht zu denen, zweimal angeben.

dependencies { 
    commonCompile "com.android:libraryA:1.0.0"  
    commonCompile "com.android:libraryB:1.0.0"  
    commonCompile "com.android:libraryC:1.0.0"  
} 
Verwandte Themen