Каталоги версий Gradle позволяют добавлять и поддерживать зависимости и плагины масштабируемым образом. Если у вас несколько модулей, то каталоги версий Gradle упрощают управление зависимостями и плагинами. Вместо того чтобы задавать в коде названия и версии зависимостей в отдельных файлах сборки и обновлять каждую запись при необходимости, вы можете создать центральный каталог версий зависимостей, на который различные модули могут ссылаться типобезопасным способом с помощью Android Studio.
На этой странице представлена основная информация о переносе приложения Android в каталоги версий. Подробнее о том, как добавить зависимости сборки, читайте в документации Gradle.
Создайте файл каталога версий
Сначала создайте файл каталога версий. В папке gradle корневого проекта создайте файл с названием libs.versions.toml. По умолчанию Gradle ищет каталог в файле libs.versions.toml, поэтому мы рекомендуем использовать это название.
Добавьте в файл libs.versions.toml следующие разделы:
[versions]
[libraries]
[plugins]
Разделы используются следующим образом:
- В блоке
versionsопределите переменные, которые содержат версии зависимостей и плагинов. Эти переменные используются в последующих блоках (librariesиplugins). - В блоке
librariesопределите зависимости. - В блоке
pluginsопределите плагины.
Этапы переноса
Рекомендуем выполнять действия в указанном порядке. Сборка может одновременно использовать зависимости и плагины из скриптов сборки и каталогов, поэтому вы можете переносить зависимости и плагины по отдельности.
Процесс переноса:
- Добавьте новую запись в каталог.
- Синхронизируйте проект для Android.
- Замените предыдущее объявление строки на типобезопасный метод доступа к каталогу.
Перенос зависимостей
Добавьте запись для каждой зависимости в разделы versions и libraries файла libs.versions.toml. Синхронизируйте проект и замените объявления в файлах сборки названиями из каталога.
В этом фрагменте кода показан файл build.gradle.kts до удаления зависимости:
Kotlin
dependencies { implementation("androidx.core:core-ktx:1.9.0") }
Яркий
dependencies { implementation 'androidx.core:core-ktx:1.9.0' }
В этом фрагменте кода показано, как определить зависимость в файле каталога версий:
[versions]
ktx = "1.9.0"
[libraries]
androidx-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "ktx" }
Для блока зависимостей в каталогах рекомендуется использовать dash-case (например, androidx-ktx), чтобы улучшить автодополнение кода в файлах сборки.
В файле build.gradle.kts каждого модуля, которому требуется зависимость, определите зависимости по именам, которые вы задали в файле TOML.
Kotlin
dependencies { implementation(libs.androidx.ktx) }
Яркий
dependencies { implementation libs.androidx.ktx }
Перенос плагинов
Добавьте запись для каждого плагина в разделы versions и plugins файла libs.versions.toml. Синхронизируйте проект, а затем замените их объявления в блоке plugins{} в файлах сборки на их названия в каталоге.
Ниже показан фрагмент кода файла build.gradle.kts до удаления плагина.
Kotlin
// Top-level `build.gradle.kts` file plugins { id("com.android.application") version "7.4.1" apply false } // Module-level `build.gradle.kts` file plugins { id("com.android.application") }
Яркий
// Top-level `build.gradle` file plugins { id 'com.android.application' version '7.4.1' apply false } // Module-level `build.gradle` file plugins { id 'com.android.application' }
В этом фрагменте кода показано, как определить плагин в файле каталога версий:
[versions]
androidGradlePlugin = "7.4.1"
[plugins]
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
Как и в случае с зависимостями, для записей каталога блоков plugins рекомендуется использовать формат dash-case (например, android-application), чтобы автозаполнение кода в файлах сборки работало лучше.
В следующем коде показано, как определить плагин com.android.application в файлах build.gradle.kts верхнего уровня и уровня модуля. Используйте alias для плагинов, которые поступают из файла каталога версий, и id для плагинов, которые не поступают из файла каталога версий, например плагинов соглашений.
Kotlin
// Top-level build.gradle.kts plugins { alias(libs.plugins.android.application) apply false } // module build.gradle.kts plugins { alias(libs.plugins.android.application) }
Яркий
// Top-level build.gradle plugins { alias libs.plugins.android.application apply false } // module build.gradle plugins { alias libs.plugins.android.application }
Подробнее…
Дополнительную информацию о настройке каталога версий можно найти в следующих ресурсах:
- В документации по формату TOML для каталога версий описаны дополнительные параметры настройки файла каталога.
- Now in Android – это пример приложения, в котором используются каталоги версий.