Обновление версий
Своевременное обновление версий Gradle и его плагинов гарантирует, что вы используете наиболее актуальную версию без багов и уязвимостей.
Также с выходом новых обновлений появляются новые функции, которые, возможно, понадобятся в проекте.
Gradle
Мы используем Gradle Wrapper как обертку, которая автоматизирует процесс установки нужной версии Gradle.
Чтобы поменять версию Gradle в вашем проекте, необходимо перейти в директорию gradle/wrapper
и открыть файл его настроек gradle-wrapper.properties
:
# ...
# URL-адрес для загрузки дистрибутива Gradle
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
# ...
Каталог с возможными версиями Gradle вы можете найти тут.
caution
Gradle придерживается такого подхода к версионированию, при котором апдейты минорных версий не нарушают обратную совместимость.
При обновлении же мажорных версий, например Gradle 6.9.1 ~> 7.0.2
, есть высокая вероятность,
что что-то будет несовместимо, поэтому такие апдейты надо делать аккуратно и проверять, что будет с обеими платформами.
Plugins
Что делать если Android Studio предложила обновить Android Gradle Plugin (AGP) или Kotlin Gradle Plugin? Какие плагины и зависимости можно обновлять без последствий?
Kotlin и Android
В принципе, вы можете обновлять все плагины и зависимости, поддерживающие семантическое версионирование, но на минорных апдейтах, чтобы не нарушалась обратная совместимость.
С ноября 2020 года Android Gradle Plugin поддерживает семантическое версионирование,
поэтому при обновлении AGP с версии 7.0
на версию 7.1
ничего сломаться не должно.
Kotlin поддерживает немного другой вид версионирования, о котором вы можете прочитать тут.
Например, если в вашем проекте используется Kotlin Multiplatform Plugin:
plugins {
kotlin("multiplatform") version "1.4.21"
}
то при смене feature версии 1.4.21 ~> 1.5.21
нужно проверить компиляцию обеих платформ и работу кода во время выполнения.
Также скорее всего придется обновлять и версии библиотек на те, которые поддерживают новую версию.
А при смене incremental (1.5.21
-> 1.5.30
) и bugfix (1.5.20
-> 1.5.21
) версий обратная совместимость сохраняется и проблем быть не должно.