2014-09-01 4 views

Odpowiedz

57

Aby ustawić zmienną globalną

project.ext.set("variableName", value) 

do niego dostęp z dowolnego miejsca w projekcie:

project.variableName 

Na przykład:

project.ext.set("newVersionName", versionString) 

a potem ...

println project.newVersionName 

Aby uzyskać więcej informacji, patrz: http://www.gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html

EDIT: Jak skomentował przez Dmitry, W nowej wersji można użyć następujących skrótów:

project.ext.variableName = value 
+0

można również uzyskać dostęp do zmiennych z gradle.properties tak samo – James

+10

Nawet krótszą drogę zdefiniować zmienną jest 'project.ext.variableName = value' (bez jawne wywołanie' projekt .ext.set') –

+0

możesz ustawić wartości w zadaniach? – Bhargav

12

Odpowiedź z Guy jest doskonała. Chcę tylko dodać praktyczny kod.

Przykład:

umieścić coś takiego w Projektubuild.gradle:

project.ext { 
    minSdkVersion = 21 
    targetSdkVersion = 23 
} 

I umieścić coś takiego w Modulebuild.gradle do niego dostęp :

defaultConfig { 
     minSdkVersion.apiLevel project.minSdkVersion 
     targetSdkVersion.apiLevel project.targetSdkVersion 
    } 
2

można też to zrobić: powiedzmy chcesz dodać AppCompat z wersji 25.3.1 można dodać zmienną VERSION_NAME w projekcie poziom budowania Gradle

buildscript{ 
    ext.version_name = '25.3.1' 
} 

teraz można dodać do swojego poziomu aplikacji budować Gradle i unikać wszelkich konfliktów

compile "com.android.support:appcompat-v7:$version_name" compile "com.android.support:recyclerview-v7:$version_name" compile "com.android.support:design:$version_name"