Cómo verificar si la dependencia de Gradle tiene una nueva versión

232

En Android Studio cuando lo uso +en el número de versión (como com.android.support:recyclerview-v7:21.+), aparece la advertencia "Evitar usar + en los números de versión". Cuando uso un número de versión específico, no siempre puedo usar la última versión. Tengo muchas dependencias en mi proyecto. ¿Cómo verifico si una dependencia tiene una versión más nueva? ¿Hay un complemento de Android Studio, o algo así, para notificarme cuando hay una versión más nueva de una dependencia?

Editar: Android Studio destaca las bibliotecas de soporte de Android obsoletas y los servicios de Google Play. Pero esto no está disponible para otras bibliotecas personalizadas.

ingrese la descripción de la imagen aquí

osrl
fuente
Para desarrolladores que están actualizando la biblioteca, consulte: ¿Cómo actualizar la biblioteca para una nueva versión en Bintray?
Suragch
2
Al menos en Android 3.0, las actualizaciones para bibliotecas personalizadas ahora muestran la misma notificación que usted tiene en la imagen de su pregunta para la biblioteca de soporte.
Suragch
@Suragch esto no funciona para algunas dependencias para mí en Android Studio 3.0.1
Rémy
Podemos usar gradleplease.appspot.com para verificar la nueva versión de la biblioteca
Alex Kisel

Respuestas:

187

Esto ahora está integrado en Android Studio como una comprobación de pelusa. Puedes habilitarlo aquí:

Configuración> Editor> Inspecciones> "Versiones de biblioteca más nuevas disponibles"

La descripción de esta inspección:

Versiones más recientes de la biblioteca disponibles

Este detector verifica con un repositorio central para ver si hay versiones más nuevas disponibles para las dependencias utilizadas por este proyecto. Esto es similar a la comprobación de GradleDependency, que busca versiones más nuevas disponibles en las herramientas y bibliotecas de Android SDK, pero funciona con cualquier dependencia de MavenCentral y se conecta a la biblioteca cada vez, lo que lo hace más flexible pero también mucho más lento.

Debido a la desaceleración que esto puede introducir, recomendaría ejecutarlo manualmente periódicamente, en lugar de tenerlo siempre encendido. Puedes hacer esto:

Analizar> "Ejecutar inspección por nombre"

Luego busque "Nuevas versiones de biblioteca disponibles" y ejecútelo en su módulo.

Editar : lo anterior solo debería funcionar a partir de Android Studio 2.3. Si tiene una versión anterior (debe actualizar), lo siguiente puede ayudar:

Tenga en cuenta que parece que debe tener la inspección habilitada para ejecutarla manualmente, por lo que (a partir de Android Studio 2.0 Beta 2) debe encontrar la inspección en la configuración, habilitarla, luego ejecutarla por nombre y luego deshabilitarla nuevamente ( para recuperar el rendimiento anterior).

Adam S
fuente
44
No sé si estoy haciendo algo mal, pero eso no funcionó para mí
osrl
1
Sí, lo mismo para mí, el reino no está en MavenCentral. ¿Su versión de modificación se define así? El mío es, y tampoco pudo encontrarlo def okhttpVersion = '2.7.2' compile "com.squareup.okhttp:okhttp:$okhttpVersion"
osrl
1
con la cadena de versión definida no se pudo encontrar. Fue capaz de encontrar com.squareup.okhttp:okhttp:2.7.2. También en2.0.0-beta4
osrl
2
Esto muestra las actualizaciones disponibles en una pestaña "Inspección", pero no lo resalta como una advertencia en build.gradle. Todavía tengo que encontrar una solución que haga eso.
Tiago
3
Tuve que volver a esta respuesta para informar que SOLO funciona para las dependencias de MavenCentral. Esto significa que los repositorios de Jitpack u otras fuentes NO se actualizan automáticamente. El método correcto para obtener la última versión de TODAS las dependencias es en esta respuesta [ stackoverflow.com/questions/28538824/… (aquí)
Ray Li
274

ACTUALIZACIÓN (23/05/18):

La versión más reciente de Android Studio no muestra actualizaciones de versión en el cuadro de diálogo Estructura del proyecto. En cambio, la respuesta de Adam es la correcta para Android Studio 3+

Analizar> "Ejecutar inspección por nombre"

Luego busque " Newer Library Versions Available"

CAMINO ANTERIOR:

A partir de Android Studio 2.2, un nuevo Project Structurecuadro de diálogo muestra la lista de dependencias que su aplicación está utilizando con las actualizaciones disponibles de los repositorios locales Y remotos también.

  • Actívelo yendo Android Studio > Settings > Build, Execution, Deployment > Gradle > Experimentaly verifique el Use new Project Structure dialog(Gracias @jessehensold)
  • Luego ábralo yendo a File > Project Structure > Messages

ingrese la descripción de la imagen aquí

Para versiones anteriores de Android Studio, vea otras respuestas a continuación.

Quanturium
fuente
1
Sobre la edición; se trataba de android-studio, porque estaba buscando un complemento de Android Studio. Gracias por la respuesta pero ya la he visto.
osrl
11
Esto ya no está presente en Android Studio (usando beta 2).
Gonzalo
8
Tuve que ir a Preferencias> Crear, Ejecutar, Implementar> Gradle> Experimental y verificar el cuadro de diálogo 'Usar nueva estructura de proyecto'
jessehensold
1
Debe ir a la pestaña "Dependencias" para habilitar el botón "Aplicar". Algún error?
Mateusz Kaflowski
2
Intenté esto con Android Studio 2.3 pero la Dependenciespestaña del Project Structurediálogo no encuentra ninguna dependencia de mi proyecto.
jakub.g
58

Además de la función incorporada de Android Studio, hay un buen complemento de gradle llamado Gradle Versions Plugin que hace exactamente lo que quieres, con la ventaja de ser una extensión de gradle simple para que NO se vincule a ningún IDE específico, por lo tanto útil para cualquier proyecto que use Gradle.

El complemento de versiones de Gradle puede crear informes en forma de texto sin formato legible por humanos, pero también puede volcarlo como JSON o XML para el procesamiento automatizado.

Una vez agregado a su archivo gradle, el uso estándar se parecería más a:

> ./gradlew dependencyUpdates

Esto generaría un informe de dependencia del proyecto similar al siguiente:

------------------------------------------------------------
: Project Dependency Updates (report to plain text file)
------------------------------------------------------------

The following dependencies are using the latest milestone version:
 - com.github.maksim88:PasswordEditText:v0.9
 - com.android.databinding:adapters:1.3.1
 - com.joanzapata.iconify:android-iconify-entypo:2.2.2
 - com.joanzapata.iconify:android-iconify-fontawesome:2.2.2
 - com.webnetmobile.tools:webnet-log:1.0.3
 - com.nulab-inc:zxcvbn:1.2.2

The following dependencies exceed the version found at the milestone revision level:
 - com.hannesdorfmann.fragmentargs:annotation [4.0.0-SNAPSHOT <- 3.0.2]
 - com.hannesdorfmann.fragmentargs:bundler-parceler [4.0.0-SNAPSHOT <- 3.0.2]
 - com.github.bumptech.glide:glide [3.7.0 <- 3.6.1]
 - com.hannesdorfmann.fragmentargs:processor [4.0.0-SNAPSHOT <- 3.0.2]

The following dependencies have later milestone versions:
 - com.github.PhilJay:MPAndroidChart [v2.2.5 -> v3.0.1]
 - com.android.support:appcompat-v7 [25.1.0 -> 25.1.1]
 - com.jakewharton:butterknife [8.4.0 -> 8.5.1]

Generated report file build/dependencyUpdates\report.txt

Ver documentos para ejemplos de uso extensivo.


NOTA: al escribir esta respuesta (2017-01), las versiones superiores a 0.17.0 producen más resultados en formato de texto del plan, incl. URL del proyecto, lo que hace que toda la salida se hinche. Si usted, como yo considero que es inútil, quédese con la versión 0.17.0 o use la versión que tenga este problema solucionado de alguna manera (si tal versión existe;)

Marcin Orlowski
fuente
3
¡Increíble! Llegué buscando esto para un proyecto Java normal. Una buena solución general sin la especificidad de Android de Lint.
TWiStErRob
Recibí un error Configuration 'compile' in project ':myapp' is deprecated. Use 'implementation' instead. The CompileOptions.bootClasspath property has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the CompileOptions.bootstrapClasspath property instead.cuando ejecuté esto.
Fruta
Rellene el informe de error aquí: github.com/ben-manes/gradle-versions-plugin/issues
Marcin Orlowski
2
El método "Nuevas versiones de biblioteca disponibles" no funcionó, ¡pero esto es perfecto! (Uso múltiples archivos gradle con variables para versiones lib)
norbDEV
¿Puedes agregar una imagen de ese complemento? No lo he encontrado en una lista.
CoolMind
14

DEPRECADO - VER RESPUESTA ACEPTADA PARA LA MODA MODERNA

La herramienta que presento a continuación no funciona en las nuevas versiones de Android Studio / Gradle y su autor ya no la mantiene (a partir del 30/10/2016 ). Por lo tanto, la solución presentada en la respuesta aceptada debe usarse a menos que funcione con una versión anterior de Android Studio.


A partir de enero de 2016, hay un complemento para Android Studio que hace algo similar, llamado Dependencies Version Checker , y cuyas fuentes se pueden encontrar en GitHub .

Se puede agregar a través de la interfaz integrada (Configuración> Complementos> Examinar repositorios ...):

Cómo se ve dentro de la interfaz nativa

Después de la instalación y reinicio, aparece la siguiente pestaña en la interfaz de usuario:

Nueva pestaña de IU que aparece después de reiniciar.

Lo relevante se build.gradledebe pegar en el lado izquierdo del panel VersionChecker y Version Checkpresionar el botón. El resultado es una tabla que aparece en el lado derecho, que incluye las últimas versiones de las bibliotecas utilizadas en el script pegado (como se muestra en la imagen de arriba).

Diablo
fuente
Incluso si esto es lo que estaba buscando en primer lugar, no funciona como se esperaba. He abierto un problema en el repositorio de Github al respecto. github.com/takuaraki/DependenciesVersionChecker/issues/5
osrl
Intenté esto y obtuve un mensaje genérico de error / falla cuando hice clic en "verificar versiones"
Greg Ennis
@GregEnnis Hay un problema con la última versión del complemento. Utilice uno anterior o espere una actualización ...
Dev-iL
11

Vea Archivo> Estructura del proyecto, luego haga clic en "Sugerencias". Lo sé, esta solución fue sugerida por Hemant Sharma y Jeremías Gersicich, pero Android Studio la ha cambiado en la versión 3.4.1.

ingrese la descripción de la imagen aquí

CoolMind
fuente
¿Alguien más tiene esta pantalla vacía en Android Studio 3.5?
Nicola Beghin
@NicolaBeghin, acabo de comprobar el proyecto vacío y recibí 4 sugerencias. Sí, había un término, cuando no mostraba sugerencias, en julio, pero arreglaron este error. Supongo que es un problema del servidor de Google, puede suceder a veces.
CoolMind
No es compatibleGradle KTS
Vlad
2

Para las dependencias de la biblioteca de soporte (com.android.support), hay una mejor opción: andle

También puede consultar jcenter y maven center.

Tres pasos simples para actualizar todos los proyectos a la vez.

1. instalar:

    $ sudo pip install andle

2. establecer sdk:

    $ andle setsdk -p <sdk_path>

3. dependencia de actualización:

    $ andle update -p <project_path> [--dryrun] [--remote] [--gradle]

--dryrun: solo imprime el resultado en la consola

--remote: verifique la versión en jcenter y mavenCentral

--gradle: verifique la versión de gradle

Consulte https://github.com/Jintin/andle para obtener más información.

Jintin
fuente
solo para bibliotecas de soporte?
osrl
@osrl si agrega --remote o -r analizará la versión en jcenter.
Jintin
0

Estaba lidiando con este mismo problema y probé la respuesta https://stackoverflow.com/a/35371234/6412430

Lo que realmente funcionó para mí en Android Studio 3.4.1 fue:

File -> Project Structure -> Dependencies

Una vez que haya alcanzado este punto, se enumerarán todas las dependencias que se incluyen en su proyecto o módulo. Los que están desactualizados aparecerán subrayados y cuando seleccione uno, se mostrarán los detalles que le brindan las opciones para actualizar la Variable (si la tiene separada de la declaración) o la Dependencia.

Un poco tarde, pero esto fue lo que funcionó para mí.

Jeremías Gersicich
fuente
También lo encontré de esta manera. Es extraño que alguien marcó menos.
CoolMind 01 de
-1

Para actualizarse o recomendarse para su proyecto, la dependencia debe ser igual que el proyecto de Android

FILE -> Project Structure -> MODULES(app) -> Dependencies

Cuando llegue a la pestaña de dependencias, haga clic en el +botón que se encuentra en la esquina superior derecha de la ventana. Cuando haga clic en +Seleccionar Library Dependency, se abrirá una nueva ventana para Choose Library DependencyBuscar su dependencia en el cuadro de búsqueda, se actualizarán todas las dependencias de Android enumeradas.

Hemant Sharma
fuente
Gracias, pero esta lista también contiene bibliotecas que no uso y, a veces, no contiene lo que uso. También Gson es com.google.code.gson:gson:2.2.4mientras realmente escom.google.code.gson:gson:2.8.5
CoolMind
a veces las dependencias funcionan con la versión compatible de gradle, compruebe si está utilizando gradle actualizado en su nivel de proyecto gradle
Hemant Sharma