Migracja kompilacji do katalogów wersji

Katalogi wersji Gradle umożliwiają dodawanie i obsługę zależności oraz wtyczek w skalowalny sposób. Korzystanie z katalogów wersji Gradle ułatwia zarządzanie zależnościami i wtyczkami, gdy masz wiele modułów. Zamiast na stałe kodować nazwy i wersje zależności w poszczególnych plikach kompilacji i aktualizować każdy wpis za każdym razem, gdy musisz uaktualnić zależność, możesz utworzyć centralny katalog wersji zależności, do którego różne moduły mogą się odwoływać w bezpieczny pod względem typów sposób przy pomocy Androida Studio.

Na tej stronie znajdziesz podstawowe informacje o migracji aplikacji na Androida do katalogów wersji. Więcej informacji znajdziesz w artykule Dodawanie zależności kompilacji i w dokumentacji Gradle.

Tworzenie pliku katalogu wersji

Zacznij od utworzenia pliku katalogu wersji. W folderze gradle projektu głównego utwórz plik o nazwie libs.versions.toml. Gradle domyślnie szuka katalogu w pliku libs.versions.toml, dlatego zalecamy używanie tej domyślnej nazwy.

W pliku libs.versions.toml dodaj te sekcje:

[versions]

[libraries]

[plugins]

Sekcje są używane w ten sposób:

  • W bloku versions zdefiniuj zmienne, które przechowują wersje zależności i wtyczek. Używasz tych zmiennych w kolejnych blokach (blokach librariesplugins).
  • W bloku libraries zdefiniuj zależności.
  • W bloku plugins zdefiniuj wtyczki.

Etapy migracji

Zalecamy wykonanie tych czynności w podanej kolejności. Kompilacja może jednocześnie korzystać z zależności i wtyczek ze skryptów kompilacji i katalogów, więc poświęć czas na przeniesienie zależności i wtyczek osobno.

Proces migracji wygląda tak:

  1. Dodaj nowy wpis do katalogu.
  2. Zsynchronizuj projekt na Androida.
  3. Zastąp poprzednią deklarację ciągu znaków bezpieczną pod względem typów metodą dostępu do katalogu.

Przenoszenie zależności

Dodaj wpis dla każdej zależności w sekcjach versionslibraries pliku libs.versions.toml. Zsynchronizuj projekt, a następnie zastąp deklaracje w plikach kompilacji nazwami katalogów.

Ten fragment kodu pokazuje plik build.gradle.kts przed usunięciem zależności:

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.9.0")

}

Groovy

dependencies {
    implementation 'androidx.core:core-ktx:1.9.0'

}

Ten fragment kodu pokazuje, jak zdefiniować zależność w pliku katalogu wersji:

[versions]
ktx = "1.9.0"

[libraries]
androidx-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "ktx" }

Zalecana nazwa bloku zależności w katalogach to kebab case (np.androidx-ktx), co ułatwia uzupełnianie kodu w plikach kompilacji.

W pliku build.gradle.kts każdego modułu, który wymaga zależności, zdefiniuj zależności za pomocą nazw określonych w pliku TOML.

Kotlin

dependencies {
   implementation(libs.androidx.ktx)

}

Groovy

dependencies {
   implementation libs.androidx.ktx

}

Migracja wtyczek

Dodaj wpis dla każdej wtyczki w sekcjach wersji i wtyczek w pliku libs.versions.toml. Zsynchronizuj projekt, a następnie zastąp deklaracje w bloku plugins{} w plikach kompilacji nazwami z katalogu.

Ten fragment kodu pokazuje plik build.gradle.kts przed usunięciem wtyczki:

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")

}

Groovy

// 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'

}

Ten fragment kodu pokazuje, jak zdefiniować wtyczkę w pliku katalogu wersji:

[versions]
androidGradlePlugin = "7.4.1"

[plugins]
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }

Podobnie jak w przypadku zależności, zalecany format wpisów w pluginskatalogu blokówandroid-application to kebab case (np. android-application), co ułatwia uzupełnianie kodu w plikach kompilacji.

Poniższy kod pokazuje, jak zdefiniować wtyczkę com.android.application w plikach build.gradle.kts na poziomie najwyższym i na poziomie modułu. Używaj alias w przypadku wtyczek pochodzących z pliku katalogu wersji i id w przypadku wtyczek, które nie pochodzą z pliku katalogu wersji, np. wtyczek konwencji.

Kotlin

// Top-level build.gradle.kts
plugins {
   alias(libs.plugins.android.application) apply false

}

// module build.gradle.kts
plugins {
   alias(libs.plugins.android.application)

}

Groovy

// Top-level build.gradle
plugins {
   alias libs.plugins.android.application apply false

}

// module build.gradle
plugins {
   alias libs.plugins.android.application

}

Więcej informacji

Więcej informacji o dodatkowych opcjach konfigurowania katalogu wersji znajdziesz w tych materiałach: