2009-06-09 35 views
41

¿Existen plugins o comandos Maven preexistentes para actualizar las dependencias en el POM? Ejemplo: (si esto estaba en mi POM)Dependencias de actualización de Maven en POM

<dependency> 
    <groupId>commons-lang</groupId> 
    <artifactId>commons-lang</artifactId> 
    <version>2.3</version> 
</dependency> 

¿Hay un comando o un plug-in que se puede ejecutar para conseguir que se actualice a la dependencia:

<dependency> 
    <groupId>commons-lang</groupId> 
    <artifactId>commons-lang</artifactId> 
    <version>2.4</version> 
</dependency> 
+2

estaría perfectamente feliz si un plugin simplemente buscar actualizaciones e informarme sobre ellos.La misma comprobación para las nuevas versiones de complementos también sería clara. – Huxi

+1

He estado pensando que podría ser uno de los objetivos del Mojo que construiré. – javamonkey79

Respuesta

50

Prueba el maven-versions-plugin, en particular, el versions:use-latest-versions Gol.

+3

Esto hace lo que solicitó el póster, aunque creo que el uso de las últimas versiones es mejor en la mayoría de los casos. Pero este es definitivamente el complemento para usar. –

+5

Dang, ¡ahora que ya lo construí! Supongo que como dice el refrán, "no reinventes ruedas a menos que quieras aprender mucho sobre ruedas". :) Gracias! – javamonkey79

+0

Sí, he perdido el uso de las últimas versiones. Gracias, Zac. –

1

No hay no lo es. Y sé feliz de que no exista. ¿Cómo sabría una herramienta como actualizar tus dependencias?

Con roturas posiblemente entre versiones menores, sería un desastre esperando que ocurriera.


Pero siempre puedes write your own Mojo para eso.

  • Obtener la última versión de la dependencia desde el repositorio Maven
  • comparar con la versión de pom.xml
  • reescritura pom.xml
  • plazo mvn test
  • ?
  • ¡Ganar!
+0

Creo que eso es todo: he estado buscando un proyecto de Mojo para hacerlo de todos modos, gracias. – javamonkey79

+0

Eso siempre es bueno de escuchar. Asegúrate de publicar un enlace si decides utilizar el modo de código abierto. –

+1

Esto puede haber sido cierto una vez, pero ya no (@Robert: ¿sugieres que refines tu respuesta?). –

4

puede utilizar DependencyManagement en su pom padres:

<dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>commons-lang</groupId> 
       <artifactId>commons-lang</artifactId> 
       <version>2.4</version> 
      </dependency> 
     </dependencies> 
</dependencyManagement> 

esta manera, es necesario cambiar la versión de una sola vez en el POM padres

+1

esto es mucho más preferible que tener algunas cosas de actualización de herramientas en formas que puede o no controlar. También garantiza que todos los niños usarán la versión especificada. –

+2

@MikePone depende del caso de uso; existen opciones válidas, como tener un dispositivo de implementación que necesite usar siempre las últimas versiones de sus propios artefactos, que es una necesidad común. En general, por supuesto, estás en lo cierto. – eis

24

Prefiero usar mvn versions:display-dependency-updates; esto genera un informe de las dependencias que se pueden actualizar, pero le permite modificar los POM usted mismo. También hay un comando display-plugin-updates para complementos.

+1

¡Muy útil! Gracias ... – kazanaki

+1

El enlace está muerto – FDinoff

+1

¡Funciona para mí! Por alguna razón, el enlace siempre me lleva a la página de inicio de mojo, pegaré el enlace aquí: http://www.mojohaus.org/versions-maven-plugin/display-dependency-updates-mojo.html – Liuting

2

Personalmente, creo que debería haber un parámetro adicional en maven que le permita agregar al pom.xml.

Ver puesto en http://maven.40175.n5.nabble.com/Is-there-any-maven-plugin-to-add-dependency-to-existing-pom-xml-td2839092.html#a5772853

Aquí, se puede añadir lo siguiente a su archivo pom.xml:

<project> 
    ... 
    <build> 
    ... 
    <plugins> 
     ... 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>versions-maven-plugin</artifactId> 
     <version>2.1</version> 
     </plugin> 
     ... 
    </plugins> 
    ... 
    </build> 
    ... 
</project> 

...

A continuación, una copia de seguridad de archivos a través de la versión pom.xml establecer comando:

mvn versions:set -DnewVersion=9.9.9 

Ejecutar últimos versiones iones:

mvn versions:use-latest-versions 

y Diff la pom.xml archivos, pom.xml y pom.xml.versionsBackup

Cuestiones relacionadas