Un script automatizado para verificar y comparar las versiones de dependencias Maven en proyectos Android/Gradle contra las últimas versiones disponibles en Maven Central y Google Maven.
- ✅ Analiza archivos
libs.versions.toml
de Gradle - 🔍 Consulta automáticamente Maven Central y Google Maven
- 📊 Categoriza dependencias por estado de actualización:
- 🔴 Diferencia Major (actualización importante requerida)
- 🟡 Diferencia Minor o Patch > 5 (actualización recomendada)
- 🟢 Actualizado (diferencia mínima o igual)
- ⚫ Estado desconocido (no se pudo verificar)
- 🏷️ Distingue entre dependencias de Google y Maven Central
- 💾 Genera reporte JSON detallado
- 🐍 Manejo automático de entorno virtual Python
- Python 3.6+
- Bash
- Acceso a internet para consultas Maven
- Clona este repositorio:
git clone https://github.com/pfranccino/gradle-deps-monitor.git
cd gradle-deps-monitor
- Dale permisos de ejecución al script:
chmod +x check-dependencies.sh
Ejecuta el script proporcionando la ruta a tu directorio Gradle que contiene libs.versions.toml
:
./check-dependencies.sh /ruta/al/directorio/gradle
./check-dependencies.sh ./app/gradle
El script genera un archivo dependency_status.json
con información detallada de cada dependencia:
{
"com.squareup.retrofit2:retrofit": {
"url": "https://central.sonatype.com/artifact/com.squareup.retrofit2/retrofit",
"version_used": "2.9.0",
"latest_version": "2.11.0",
"timestamp": "2024-01-15T10:30:00",
"status": "🟡",
"type": "maven"
},
"androidx.core:core-ktx": {
"url": "https://maven.google.com/web/index.html#androidx.core",
"version_used": "1.10.1",
"latest_version": "1.12.0",
"timestamp": "2024-01-15T10:30:00",
"status": "🟡",
"type": "google"
}
}
├── check-dependencies.sh # Script principal de Bash
├── version-stats.py # Script de Python para análisis
├── README.md # Este archivo
└── dependency_status.json # Archivo de salida (generado)
- Validación: Verifica que existe el directorio y el archivo
libs.versions.toml
- Entorno virtual: Crea y activa un entorno virtual Python
- Instalación: Instala las dependencias Python necesarias (
requests
) - Análisis:
- Parsea el archivo
libs.versions.toml
- Extrae información de dependencias
- Consulta Maven Central y/o Google Maven por las últimas versiones
- Parsea el archivo
- Comparación: Evalúa el estado de cada dependencia
- Reporte: Genera un archivo JSON con los resultados
- Google/Android:
androidx.*
,com.google.*
,com.android.*
, etc. - Maven Central: Todas las demás dependencias públicas
- 🔴 Major: Cambio en versión mayor (ej: 1.x.x → 2.x.x)
- 🟡 Minor/Patch: Cambio en versión menor o parche > 5
- 🟢 Actualizado: Versión igual o diferencia mínima
- ⚫ Desconocido: No se pudo determinar la versión
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature
) - Commit tus cambios (
git commit -m 'Add some AmazingFeature'
) - Push a la rama (
git push origin feature/AmazingFeature
) - Abre un Pull Request
Si encuentras algún bug o tienes una sugerencia, por favor abre un issue.