Каталоги версий 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" }
Рекомендуемое имя для блока зависимостей в каталогах — регистр «кебаб» (например androidx-ktx
) для более удобного завершения кода в файлах сборки.
В файле build.gradle.kts
каждого модуля, которому требуется зависимость, определите зависимости по именам, которые вы определили в файле TOML.
Котлин
dependencies { implementation(libs.androidx.ktx) }
классный
dependencies { implementation libs.androidx.ktx }
Перенос плагинов
Добавьте запись для каждого плагина в разделы версий и плагинов файла 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 есть наш пример приложения, использующий каталоги версий.
Известные проблемы
Каталоги версий Gradle все еще находятся в стадии активной разработки. Дополнительные сведения о том, что еще не поддерживается, см. в разделе известные проблемы и ограничения .