При использовании какой-либо библиотеки, часто приходится добавлять в 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
- ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня