Перенесите сборку в каталоги версий

Каталоги версий 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 определите свои плагины.

Этапы миграции

Мы рекомендуем вам выполнить действия в указанном порядке. Сборка может одновременно использовать зависимости и плагины из сценариев сборки и каталогов, поэтому не торопитесь переносить зависимости и плагины по отдельности.

Процесс миграции:

  1. Добавьте новую запись в каталог.
  2. Синхронизируйте свой Android-проект.
  3. Замените предыдущее строковое объявление типобезопасным методом доступа каталога.

Перенос зависимостей

Добавьте запись для каждой зависимости в разделы 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

}

Узнать больше

Чтобы узнать о дополнительных возможностях настройки каталога версий, см. следующие ресурсы:

Известные проблемы

Каталоги версий Gradle все еще находятся в стадии активной разработки. Дополнительные сведения о том, что еще не поддерживается, см. в разделе известные проблемы и ограничения .