java - proyecto - Maven actualiza dependencias en POM
maven empaquetar dependencias (5)
¿Existen plugins o comandos Maven preexistentes para actualizar las dependencias en el POM? Ejemplo: (si esto estaba en mi POM)
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.3</version>
</dependency>
¿Existe un comando o complemento que pueda ejecutar para que actualice la dependencia a:
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
</dependency>
No, no hay. Y sé feliz de que no exista. ¿Cómo sabría una herramienta como actualizar tus dependencias?
Con las roturas posiblemente ocurriendo entre versiones menores, sería un desastre esperando suceder.
Pero siempre puedes escribir tu propio Mojo para eso.
- obtener la última versión de la dependencia del repositorio de Maven
- comparar con la versión de pom.xml
- reescribir pom.xml
- ejecutar la
mvn test
- ?
- ¡Lucro!
Personalmente, creo que debería haber un parámetro adicional en maven que te permita agregar al pom.xml.
Ver la publicación en http://maven.40175.n5.nabble.com/Is-there-any-maven-plugin-to-add-dependency-to-existing-pom-xml-td2839092.html#a5772853
Aquí puede agregar 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>
...
Luego haz una copia de seguridad de tu archivo pom.xml a través del comando de configuración de versión:
mvn versions:set -DnewVersion=9.9.9
Ejecute las últimas versiones:
mvn versions:use-latest-versions
y diff los archivos pom.xml, pom.xml y pom.xml.versionsBackup
Prefiero usar las versiones de mvn: 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.
Pruebe el maven-versions-plugin , en particular, las versions:use-latest-versions goal.
puedes usar dependencyManagement en tu pom padre:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
</dependency>
</dependencies>
</dependencyManagement>
De esta forma, solo debe cambiar la versión una vez en el POM principal.