Migrar o build para catálogos de versões (original) (raw)

Os catálogos de versões do Gradle (link em inglês) permitem adicionar e manter dependências e plug-ins de maneira escalonável. O uso desses catálogos facilita o gerenciamento de dependências e plug-ins quando você tem vários módulos. Em vez de fixar no código os nomes e versões de dependência em arquivos de build individuais e atualizar cada entrada sempre que for necessário fazer upgrade de uma dependência, é possível criar um_catálogo de versões_ central de dependências que vários módulos podem referenciar de maneira segura com a ajuda do Android Studio.

Esta página traz informações básicas sobre a migração do seu app Android para catálogos de versões. Para saber mais, consulteAdicionar dependências de build e a documentação do Gradle.

Criar um arquivo de catálogo de versões

Comece criando um arquivo de catálogo de versões. Na pasta gradle do projeto raiz, crie um arquivo chamado libs.versions.toml. O Gradle vai procurar o catálogo no arquivo libs.versions.toml por padrão (link em inglês). Recomendamos usar esse nome.

No seu arquivo libs.versions.toml, adicione estas seções:

[versions]

[libraries]

[plugins]

As seções são usadas desta forma:

Etapas da migração

Recomendamos que você siga as etapas na ordem listada. Um build pode consumir dependências e plug-ins de scripts e catálogos simultaneamente. Migre suas dependências e plug-ins um a um.

O processo de migração consiste em:

  1. Adicionar a nova entrada ao catálogo.
  2. Sincronizar seu projeto do Android.
  3. Substituir a declaração de string anterior pelo acessador com segurança de tipos de catálogo.

Migrar dependências

Adicione uma entrada para cada dependência nas seções versions e librariesdo arquivo libs.versions.toml. Sincronize o projeto e substitua as declarações nos arquivos de build pelos nomes do catálogo.

O snippet de código abaixo mostra o arquivo build.gradle.kts antes da remoção da dependência:

Kotlin

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

}

Groovy

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

}

O snippet de código abaixo mostra como definir a dependência no arquivo de catálogo de versões:

[versions]
ktx = "1.9.0"

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

A nomenclatura recomendada para o bloco de dependências em catálogos é o caso kebab, comoandroidx-ktx, para melhorar aassistência de preenchimento de códigonos arquivos de build.

No arquivo build.gradle.kts de cada módulo que requer a dependência, defina-as pelos nomes que você escolheu no arquivo TOML.

Kotlin

dependencies { implementation(libs.androidx.ktx)

}

Groovy

dependencies { implementation libs.androidx.ktx

}

Migrar plug-ins

Adicione uma entrada para cada plug-in nas seções de versões e de plug-ins do arquivo libs.versions.toml. Sincronize o projeto e substitua as declarações no bloco plugins{} dos arquivos de build pelos nomes do catálogo.

O snippet de código abaixo mostra o arquivo build.gradle.kts antes da remoção do plug-in:

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'

}

O snippet de código abaixo mostra como definir o plug-in no arquivo de catálogo de versões:

[versions]
androidGradlePlugin = "7.4.1"

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

Assim como para dependências, a formatação recomendada para entradas do catálogo de blocos doplugins é o caso kebab (como android-application), para melhorar aassistência de preenchimento de códigonos arquivos de build.

O código abaixo mostra como definir o plug-in com.android.application nos arquivos build.gradle.kts de nível superior e de módulo. Use alias para plug-ins que vêm do arquivo de catálogo de versões e id para plug-ins que não vêm desse arquivo, comoplug-ins de convenção (link em inglês).

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

}

Saiba mais

Para mais informações sobre outras opções de configuração do catálogo de versões, consulte estes recursos: