jueves, 10 de septiembre de 2015

maven-release-plugin configuración

COMANDOS PARA SU UTILIZACIÓN

Se recomiendo utilizar estos comandos con el IDE cerrado y por línea de comandos para evitar bloqueos de directorios.
Los comandos para usar la release son los siguientes y en el siguiente orden:

mvn release:clean  Despues de ejecutar prepare se quedan unos ficheros en local que se eliminan utilizando el clean.
mvn release:prepare  Este comando modifica los poms, comita a svn y crea el tag.
mvn release:perform -Dusername=developer -Dpassword=developer -DuseReleaseProfile=false  Después de crear el tag con prepare este comando generará la release. Despues ya podemos ejecutar mvn deploy para subir todos nuestros jars a archiva.

SI EL PASO PREPARE O EL PASO PERFORM DAN ALGÚN FALLO SE USARÁ ROLLBACK PARA VOLVER A LA VERSIÓN ANTERIOR
mvn release:rollback  En el caso de que al finalizar el release:prepare haya errores hay que ejecutar el rollback que elimina los cambios en local y la subida al trunk. Luego a mano se debería eliminar el tag ya que este no lo borra rollback.

Cosas a tener en cuenta:
Al realizar el comando "perform" se descarga en new-distribution-api/target el tag que se va a utilizar para hacer el deploy sobre tu repositorio de artefactos. Este directorio hay que limpiarlo a mano ya que a veces queda ahí.
Si falla el prepare se puede usar rollback sin problema, pero si falla el perform pero ya ha subido algún artefacto a archiva y usamos rollback nos encontraremos que la próxima vez que se intente realizar el perform de esa misma versión dará un mensaje de conflicto. Hay que eliminar a mano de archiva los jars subidos antes del error.

 <plugin>  
      <groupid>org.apache.maven.plugins</groupid>  
      <artifactid>maven-release-plugin</artifactid>  
      <version>2.5.1</version>  
      <configuration>  
           <autoversionsubmodules>true</autoversionsubmodules>  
           <allowtimestampedsnapshots>true</allowtimestampedsnapshots>  
           <preparationgoals>clean install -DignoreSnapshots=true</preparationgoals>  
           <username>${svn.username}</username>  
           <password>${svn.password}</password>  
           <tagbase>http://TUSUBVERSION/TUPROYECTO/tags/</tagbase>   
      </configuration>  
 </plugin>  

No hay comentarios: