Catálogos de versiones de Gradle para una gran gestión de dependencias | de Matías Calvo | mayo 2022
Administrar dependencias en un proyecto de un solo módulo es bastante fácil, pero una vez que comience a escalar y agregar módulos, tiene un par de formas de manejarlo:
- Gestión manual: Indica que la misma cadena que contiene el grupo de bibliotecas, el artefacto y la versión está presente en muchos lugares.
Si una biblioteca necesita ser actualizada, tenemos que cambiarla manualmente en cada archivo de Gradle, esto es muy propenso a errores. ext
Bloques: Esta es la solución recomendada por Google en su documentación y soluciona los problemas de gestión manual. El único inconveniente es que el IDE no ofrece finalización de código.buildSrc
: con este enfoque, utiliza un módulo especial de Gradle y define sus dependencias mediante el código de Kotlin. El principal beneficio de esta opción es el autocompletado y la navegación, mientras que la desventaja es que cada vez que cambia una versión, se debe volver a compilar todo el módulo.
Para proporcionar un estándar para la gestión, el equipo de Gradle presentó catálogos de lanzamiento como característica experimental en la versión 7.0 y promovido a la versión estable 7.4 🎉. Esta característica permite que las dependencias se compartan de forma centralizada con una sintaxis simple y sin afectar la velocidad de compilación.
Puede crear los catálogos de versiones manualmente en settings.gradle
Sin embargo, la forma más sencilla es usar un archivo TOML, que es realmente fácil de entender.
Contenidos
1️. Asegúrate de estar usando Gradle 7.4 o más reciente
Esto se puede comprobar fácilmente con:
./gradlew --version
En caso de que necesite actualizar, puede realizar esta tarea ejecutando:
./gradlew wrapper --gradle-version=7.4.2
2. Crea el archivo TOML
Vamos a crear esos gradle/libs.versions.toml
que Gradle usa por defecto para crear el libs
Catalogar. Este archivo puede contener cuatro secciones:
[versions]
se utiliza para declarar los números de versión que luego serán referenciados por complementos y bibliotecas.[libraries]
Defina las bibliotecas a las que se accederá más adelante en nuestros archivos Gradle.[bundles]
Se utiliza para definir un conjunto de dependencias.[plugins]
Agregado en Gradle 7.2, utilizado para definir complementos.
ℹ️ Soy [libraries]
Encontrará diferentes formas de expresar una biblioteca o un complemento en el archivo TOML.
ℹ️ Puedes usar separadores como -
, _
, .
esto es normalizado por Gradle .
en el catálogo y permitir la creación de subcategorías.
ℹ️ Las variables definidas son CamelCase.
3. Configure su directorio raíz build.gradle
Archivo:
Reemplazar viejo dependencies
cuadra
Para el plugins
Cuadra.
⚠️ Debe incluir aquí los complementos que utilizará en todos sus módulos apply false
Sufijo. La excepción a esta regla es la que usas solo en esta tribu build.gradle
Archivo.
4. Ahora es tu turno de aplicar build.gradle
expediente
Defina sus complementos en la parte superior de su build.gradle
archivo y la implementación
⚠️ Si usas Jetpack Compose puedes configurarlo así:
Android Studio tiene este soporte para archivos TOML:
👍 Se verifica la corrección del archivo TOML al compilar su proyecto.
👎 Autocompletado de archivos Gradle
👎 Sugerencia para actualizar la dependencia
Complemento para actualizar dependencias:
La comunidad viene al rescate hasta que el IDE se pone al día 🎉
Este complemento creado por Hugo Visser le permite actualizar todas sus dependencias ejecutando una tarea Gradle, es fácil de configurar y también puede anclar algunas bibliotecas para evitar actualizarlas.