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 (blokachlibraries
iplugins
). - 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:
- Dodaj nowy wpis do katalogu.
- Zsynchronizuj projekt na Androida.
- 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 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") }
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 plugins
katalogu 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:
- Format pliku TOML katalogu wersji zawiera dokumentację dodatkowych opcji konfigurowania pliku katalogu.
- Now in Android to nasza przykładowa aplikacja, która korzysta z katalogów wersji.