central java maven dependencies ivy gradle

java - central - gradle dependencies tree



Gradle: obtener la última versión de una dependencia (5)

A veces puede ser muy útil obtener la última versión, si, por ejemplo, lanzas a menudo tus propias dependencias.

Puedes obtener la última versión como

compile "junit:junit:+"

o mejor especifique al menos la versión principal como

compile "junit:junit:4.+"

Cuál sería la forma más fácil de decirle a Gradle lo siguiente:

Recupere la dependencia ''junit'' y tome su última versión ''release''.

Administrar repositorios de Maven e Ivy es algo nuevo para mí. Probé los siguientes pasos y dieron como resultado Could not resolve dependency ... error:

  • Escriba compile "junit:junit:latest.release" con los repositorios configurados solo para mavenCentral() (sin embargo, funciona si digo "junit: junit: 4.10").

  • Escribir compile "junit:junit:latest.release" con el conjunto de repositorio de la siguiente manera:

    ivy { // I also tried ''http://maven.org'' and other possible variants. url "http://repo1.maven.org" layout "maven" }

  • Intento utilizar el repositorio Spring Source Ivy:

    ivy { artifactPattern "http://repository.springsource.com/ivy/libraries/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" ivyPattern "http://repository.springsource.com/ivy/libraries/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" }

Quizás malinterprete algo. ¿Por qué conseguir la última versión de la dependencia sería una tarea tan difícil?


Actualmente, Gradle no es compatible con la versión de Maven (que rara vez se usa y se desaprueba), pero sí es compatible con la latest.release más latest.release de Ivy. Sin embargo, la recomendación general es compilar contra versiones exactas. De lo contrario, la construcción puede convertirse en una lotería.


La última guía de usuario de Gradle menciona y explica las versiones de inicio de sesión más avanzadas:

Desde 7.2. Declarando sus dependencias :

dependencies { compile group: ''org.hibernate'', name: ''hibernate-core'', version: ''3.6.7.Final'' testCompile group: ''junit'', name: ''junit'', version: ''4.+'' }

... El script de compilación también establece que se requiere cualquier junit> = 4.0 para compilar las pruebas del proyecto.

Desde el 23.7. Cómo funciona la resolución de dependencia :

Si la dependencia se declara como una versión dinámica (como 1. +), Gradle la resolverá con la versión estática más nueva disponible (como 1.2) en el repositorio. Para los repositorios de Maven, esto se hace usando el archivo maven-metadata.xml, mientras que para los repositorios de Ivy esto se hace por listado de directorio.


Si usa + para la versión y desea saber qué versión se está utilizando en realidad , seleccione Project en la barra lateral y, a continuación, en External Libraries , verá el número de versión real en uso.


Vea el plugin Gradle-Versions. Hace exactamente lo que quiere: https://github.com/ben-manes/gradle-versions-plugin

Para la instalación, vea la página de github. Básicamente, necesitas agregar estas dos líneas a tu build.gradle - archivo de proyecto:

apply plugin: ''com.github.ben-manes.versions'' buildscript { [...] dependencies { classpath ''com.github.ben-manes:gradle-versions-plugin:0.8'' [...] } } [...]

Luego puede usar el complemento ejecutando este comando en la terminal en su directorio de proyecto:

./gradlew dependencyUpdates -Drevision=release

¡Y le mostrará qué dependencias están desactualizadas!