Каталоги версий 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
до удаления зависимости:
Котлин
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" }
Рекомендуемое наименование блока зависимостей в каталогах — «kebab case» (например, androidx-ktx
) для лучшей помощи при дополнении кода в файлах сборки.
В файле build.gradle.kts
каждого модуля, которому требуются зависимости, определите зависимости по именам, которые вы определили в файле TOML.
Котлин
dependencies { implementation(libs.androidx.ktx) }
Круто
dependencies { implementation libs.androidx.ktx }
Миграция плагинов
Добавьте запись для каждого плагина в разделы «versions» и «plugins» файла libs.versions.toml
. Синхронизируйте свой проект, а затем замените их объявления в блоке plugins{}
в файлах сборки на имена их каталогов.
Этот фрагмент кода показывает файл build.gradle.kts
до удаления плагина:
Котлин
// 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
является кебабный регистр (например, android-application
) для лучшей помощи при дополнении кода в файлах сборки.
Следующий код показывает, как определить плагин com.android.application
в файлах build.gradle.kts
верхнего и модульного уровня. Используйте alias
для плагинов, которые входят в файл каталога версий, и id
для плагинов, которые не входят в файл каталога версий, например, плагинов соглашений .
Котлин
// 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 документирует дополнительные параметры настройки файла каталога.
- Теперь на Android есть наш пример приложения, который использует каталоги версий.