Migracja kompilacji do katalogów wersji

Katalogi wersji Gradle umożliwiają dodawanie oraz utrzymywanie zależności i 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 kodować na stałe nazwy i wersje zależności w poszczególnych plikach kompilacji i aktualizować każdy wpis w razie potrzeby, możesz utworzyć centralny katalog wersji zależności, do których poszczególne moduły mogą się odwoływać w bezpieczny sposób za pomocą Android Studio.

Na tej stronie znajdziesz podstawowe informacje o migracji aplikacji na Androida do katalogów wersji. Więcej informacji znajdziesz w artykule o dodawaniu zależności kompilacji i 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życie tej nazwy domyślnej.

W pliku libs.versions.toml dodaj te sekcje:

[versions]

[libraries]

[plugins]

Sekcje są używane w następujący sposób:

  • W bloku versions zdefiniuj zmienne, które przechowują wersje zależności i wtyczek. Tych zmiennych używasz w kolejnych blokach (bloków libraries i plugins).
  • 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 wykorzystywać zależności i wtyczki ze skryptów kompilacji i katalogów, dlatego nie spiesz się, by przenieść zależności i wtyczki pojedynczo.

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 akcesorem bezpiecznym dla danego typu katalogu.

Migracja zależności

Dodaj wpis dla każdej zależności w sekcjach versions i libraries 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")

}

Odlotowy

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

Zalecane nazewnictwo bloków zależności w katalogach to „kebab” (np. androidx-ktx), co zapewnia lepszą pomoc w uzupełnianiu kodu w plikach kompilacji.

W pliku build.gradle.kts każdego modułu, który wymaga zależności, zdefiniuj zależności według nazw zdefiniowanych w pliku TOML.

Kotlin

dependencies {
   implementation(libs.androidx.ktx)

}

Odlotowy

dependencies {
   implementation libs.androidx.ktx

}

Migracja wtyczek

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

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

}

Odlotowy

// 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, zalecanym formatowaniem wpisów w katalogu blokowym plugins jest kebab (np. android-application), który zapewnia lepszą pomoc w uzupełnianiu kodu w plikach kompilacji.

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

Kotlin

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

}

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

}

Odlotowy

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

}

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

}

Więcej informacji

Informacje o dodatkowych opcjach konfigurowania katalogu wersji znajdziesz w tych materiałach:

Znane problemy

Katalogi wersji Gradle są nadal w trakcie opracowywania. Więcej informacji na temat funkcji, które nie są jeszcze obsługiwane, znajdziesz w sekcji Znane problemy i ograniczenia.