La tarea de buscar manualmente si existen nuevas versiones de las librerías que usamos en un proyecto puede ser muy tediosa. El plugin de gradle gradle-versions-plugin nos permite elaborar un informe acerca de las nuevas versiones de librerías que usemos.
En el fichero build.gradle
de la carpeta raíz de nuestro proyecto Gradle tendremos que:
1. Asegurarnos que tiene definido el repositorio jcenter
.
2. Añadir, en el apartado buildscript -> dependencies
la dependencia del plugin gradle-versions
.
3. En la sección allprojects
indicar que este plugin estará disponible para todos los proyectos.
El siguiente trozo de código muestra las líneas implicadas.
buildscript { repositories { jcenter() } dependencies { classpath "com.github.ben-manes:gradle-versions-plugin:0.20.0" } } allprojects { apply plugin: "com.github.ben-manes.versions" }
A continuación, ya podemos extraer un informe donde se nos indicará qué librerías que estamos utilizando disponen de una versión más actual a la utilizada por nuestro proyecto. En mi caso, como se trata de un proyecto Android lo haré sobre el módulo app
.
./gradlew app:dependencyUpdates
La salida de este comando para mi proyecto es la siguiente:
> Task :app:dependencyUpdates ------------------------------------------------------------ :app Project Dependency Updates (report to plain text file) ------------------------------------------------------------ The following dependencies are using the latest milestone version: - android.arch.persistence.room:compiler:1.1.1 - android.arch.persistence.room:runtime:1.1.1 - com.android.support:appcompat-v7:28.0.0 - com.android.support:cardview-v7:28.0.0 - com.android.support:design:28.0.0 - com.android.support.test:runner:1.0.2 - com.android.support.test.espresso:espresso-core:3.0.2 - com.github.PhilJay:MPAndroidChart:v3.1.0-alpha - com.google.code.gson:gson:2.8.5 - com.google.truth:truth:0.42 - com.google.truth.extensions:truth-java8-extension:0.42 - com.jakewharton:butterknife:9.0.0-rc1 - com.jakewharton:butterknife-compiler:9.0.0-rc1 - junit:junit:4.12 - org.eclipse.paho:org.eclipse.paho.android.service:1.1.1 - org.mockito:mockito-core:2.23.0 The following dependencies have later milestone versions: - com.android.support.constraint:constraint-layout [1.1.3 -> 2.0.0-alpha2] http://tools.android.com - com.android.tools.build:aapt2 [3.2.1-4818971 -> 3.4.0-alpha03-5013011] https://developer.android.com/studio - com.android.tools.lint:lint-gradle [26.2.1 -> 26.4.0-alpha03] https://developer.android.com/studio - com.google.dagger:dagger-android [2.15 -> 2.19] https://github.com/google/dagger - com.google.dagger:dagger-android-processor [2.15 -> 2.19] https://github.com/google/dagger - com.google.dagger:dagger-android-support [2.15 -> 2.19] https://github.com/google/dagger - com.google.dagger:dagger-compiler [2.15 -> 2.19] https://github.com/google/dagger - io.reactivex.rxjava2:rxandroid [2.0.2 -> 2.1.0] https://github.com/ReactiveX/RxAndroid - io.reactivex.rxjava2:rxjava [2.1.16 -> 2.2.3] https://github.com/ReactiveX/RxJava - org.eclipse.paho:org.eclipse.paho.client.mqttv3 [1.1.1 -> 1.2.0] http://www.eclipse.org/paho Gradle updates: - Gradle: [4.6 -> 4.10.2 -> 5.0-rc-3] Generated report file build/dependencyUpdates/report.txt BUILD SUCCESSFUL in 3s 1 actionable task: 1 executed