2016-04-07 11 views
2

Ich habe meine Wurzel build.gradle wie folgt aus:Wie verwalte und verweise ich auf bestimmte Versionen von Abhängigkeitsbibliotheken?

... 
ext{ 
    buildToolsVersion = '23.2.1' 
} 
... 

Warum kann ich meine Android-Support-Bibliotheken Version wie folgt verwalten:

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:${rootProject.ext.buildToolsVersion}' 
    compile 'com.android.support:design:${rootProject.ext.buildToolsVersion}' 
} 

${} Werke in Groovy, warum es in Gradle nicht funktioniert?

+0

und wenn Sie über die Verwaltung der Aktualisierung Ihrer verschiedenen Abhängigkeiten kümmern, können Sie meine Frage hier sehen: http://StackOverflow.com/Questions/38237130/How-To-Detect-When-Dependency-Library-Version-Updates -exist-in-build-gradle-in-a @Ben Manes hat eine fantastische Lösung. Wenn Sie in den Kommentaren meiner Frage nachlesen, schlägt er außerdem eine raffinierte Möglichkeit vor, Ihre Abhängigkeiten zu strukturieren. – Creos

Antwort

5

Verwendung:

In root/build.gradle:

ext { 
    //Version 
    supportLibrary = '23.2.1' 

    //Support Libraries dependencies 
    supportDependencies = [ 
      design   :   "com.android.support:design:${supportLibrary}", 
      recyclerView  :   "com.android.support:recyclerview-v7:${supportLibrary}", 
      cardView   :   "com.android.support:cardview-v7:${supportLibrary}", 
      appCompat  :   "com.android.support:appcompat-v7:${supportLibrary}", 
      supportAnnotation:   "com.android.support:support-annotations:${supportLibrary}", 
    ] 
} 

In Ihrem module/build.gradle:

dependencies { 
    //...... 
    compile supportDependencies.appCompat 
    compile supportDependencies.design 
} 
+0

Es ist meine Schuld, Ihre Lösung ist großartig. –

+0

Ich mag die Idee, die Support-Bibliotheken in einem Array zu bündeln. Gibt es eine Möglichkeit, in Gradle eine Schleife zu schreiben, um all diese ohne individuelle 'compile' Anweisungen zu kompilieren? –

0

meine Schuld.
'com.android.support:appcompat-v7:${rootProject.ext.buildToolsVersion}'
gleich
"com.android.support:appcompat-v7:\${rootProject.ext.buildToolsVersion}".
so sollte es "com.android.support:appcompat-v7:${rootProject.ext.buildToolsVersion}" mit doppelte Anführungszeichen sein.

+0

Sie können Ihre ursprüngliche Frage bearbeiten und müssen keine Antwort mit Korrekturen an Ihre eigene Frage posten. – Levon

Verwandte Themen