Jak ustawić globalną zmienną, do której można uzyskać dostęp z build.gradle i zadań?Android gradle build: jak ustawić globalne zmienne
Odpowiedz
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
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
}
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"
można również uzyskać dostęp do zmiennych z gradle.properties tak samo – James
Nawet krótszą drogę zdefiniować zmienną jest 'project.ext.variableName = value' (bez jawne wywołanie' projekt .ext.set') –
możesz ustawić wartości w zadaniach? – Bhargav