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

Каталоги версий 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" }

Рекомендуемое наименование блока зависимостей в каталогах — «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

}

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

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