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

- ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня




Language

Автор сайта

Дмитрий Виноградов

Подробнее можно посмотреть или почитать.

Никакие другие люди не имеют к этому сайту никакого отношения и просто занимаются плагиатом.

Социальные сети

 

В канале я публикую ссылки на интересные и полезные статьи по Android

В чате можно обсудить вопросы и проблемы, возникающие при разработке



Группа ВКонтакте



Поддержка проекта

Яндекс
410011180491924

WebMoney
R248743991365
Z551306702056

Paypal