При использовании какой-либо библиотеки, часто приходится добавлять в dependencies несколько ее частей и всем им прописывать одну и ту же версию. Самый распространенный пример - Android Support Library.
Обычно код в dependencies выглядит так:
// support library
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:recyclerview-v7:25.3.1'
compile 'com.android.support:cardview-v7:25.3.1'
Gradle позволяет избавиться от этой копипасты.
Используем переменные для указания версий.
def androidSupportVersion = '25.3.1'
dependencies {
// support library
compile 'com.android.support:appcompat-v7:' + androidSupportVersion
compile 'com.android.support:recyclerview-v7:' + androidSupportVersion
compile 'com.android.support:cardview-v7:' + androidSupportVersion
}
Либо тоже самое можно записать так:
def androidSupportVersion = '25.3.1'
dependencies {
// support library
compile "com.android.support:appcompat-v7:${androidSupportVersion}"
compile "com.android.support:recyclerview-v7:${androidSupportVersion}"
compile "com.android.support:cardview-v7:${androidSupportVersion}"
}
Выбирайте вариант, как вам удобнее.
Если у вас много модулей и вы во всех хотите использовать одну переменную для версии библиотеки, то можно сделать глобальную переменную.
Для этого открывайте build.gradle файл вашего проекта (не модуля) и добавляйте в него секцию ext
ext {
androidSupportVersion = '25.3.1'
}
Теперь в gradle файлах модулей вашего проекта вы сможете использовать эту переменную
dependencies {
// support library
compile 'com.android.support:appcompat-v7:' + rootProject.ext.androidSupportVersion
compile 'com.android.support:recyclerview-v7:' + rootProject.ext.androidSupportVersion
compile 'com.android.support:cardview-v7:' + rootProject.ext.androidSupportVersion
}
В итоге, секция ext может выглядеть, например, так:
ext {
androidSupportVersion = '25.3.1'
daggerVersion = '2.11'
rxJavaVersion = '2.1.2'
rxAndroidVersion = '2.0.1'
rxRelayVersion = '2.0.0'
rxBinding = '2.0.0'
gsonVersion = '2.7'
retrofitVersion = '2.3.0'
constraintLayoutVersion = '1.0.2'
butterKnifeVersion = '8.7.0'
okhttpVersion = '3.8.1'
streamsVersion = '1.1.7'
picassoVersion = '2.5.2'
mockitoVersion = '2.8.47'
espressoVersion = '2.2.2'
junitVersion = '4.12'
}
Подняв здесь версию библиотеки, вы обновите ее во всем проекте.
Здесь описано еще более удобное решение.
Присоединяйтесь к нам в Telegram:
- в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.
- в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Compose, Kotlin, RxJava, Dagger, Тестирование, Performance
- ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня

