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>  

maven-checkstyle-plugin configuration usando la configuracion desde Sonar

 <plugin>  
      <groupid>org.apache.maven.plugins</groupid>  
      <artifactid>maven-checkstyle-plugin</artifactid>  
      <version>${maven-checkstyle-plugin-version}</version>  
      <configuration>  
           <includetestsourcedirectory>true</includetestsourcedirectory>  
           <configlocation>http://YOURSONARSERVER/profiles/export?format=checkstyle&amp;language=java&amp;name=YOURCHECKSTYLEFILERULES</configlocation>  
           <suppressionslocation>http://sonar.it.ods/checkstyle-suppressions.xml</suppressionslocation>    
           <suppressionsfileexpression>checkstyle.suppressions.file</suppressionsfileexpression>   
      </configuration>  
      <executions>   
           <execution>    
                <id>checkstyle</id>    
                <phase>validate</phase>    
                <goals>   
                     <goal>check</goal>   
                </goals>    
                <configuration>    
                     <failonviolation>true</failonviolation>  
                </configuration>  
           </execution>  
      </executions>  
      <dependencies>  
           <dependency>    
                <groupid>com.puppycrawl.tools</groupid>  
                <artifactid>checkstyle</artifactid>  
                <version>${checkstyle-version}</version>  
           </dependency>  
      </dependencies>   
 </plugin>  

Instalación JDK

Instalar el jdk recién bajado.  

Añadir o modificar las variables de entorno PATH y JAVA_HOME:   
    1. JAVA_HOME apuntando a la carpeta .....\Java\jdk1.8.0_25
    2. Añadir a la variable PATH ;%JAVA_HOME%\bin  
Para modificar de forma cómoda las variables de entorno en windows se puede usar la aplicación Rapid Environment Editor (http://www.rapidee.com/)

Configurar JDK en Eclipse
Window->Preferences->java:   En Installed JREs    -> Add -> Standard VM -> Directory -> Directory: y seleccionamos donde está el jdk recién instalado (...\Java\jdk1.8.0_25)
Una vez añadido, seleccionamos éste que acabamos de añadir.   En Compiler -> seleccionar JDK Compilance: jdk8
Si nuestros proyectos van con la misma versión de jdk, se aconseja quitar los demás jdks del IDE.

Uso de lombok en Eclipse

Utilizamos lombok para reducir la cantidad de código repetitivo mediante el uso de anotaciones. Es necesario instalar el plugin de lombok para compilar el proyecto.
 Lombok:  En C:\Maven3\org\projectlombok\lombok\{version utilizada en nuestro proyecto} -> doble click sobre el jar e instalar.  
Es necesario reiniciar el IDE para que cargue el plugin.

SPRING LOADED

Spring Loaded permite la creación y modificación de métodos “en caliente”.
Para hacer uso de esta herramienta hay que bajar el .jar de Spring Loaded de: https://github.com/spring-projects/spring-loaded (en el apartado installation).
Este jar lo metemos, por ejemplo, en la carpeta del eclipse.
Una vez bajado, en los VM Arguments que utilizamos para iniciar nuestra aplicación añadir el comando:
-javaagent:D:/sts-bundle/sts-3.6.1.RELEASE/spring-loaded/springloaded-1.2.1.RELEASE.jar –noverify

Siendo este comando válido para el jar “springloaded-1.2.1.RELEASE.jar”, que lo he copiado dentro de: D:/sts-bundle/sts-3.6.1.RELEASE/spring-loaded/

Unlocker por maven pre-clean

A veces windows bloquea ficheros del workspace, tipicamente de los target y da error al ejecutar mvn clean install debido a que no puede borrar estos ficheros bloqueados.
Para desbloquear directorios completos existe un programa windows llamado Unlocker http://unlocker.uptodown.com/
Después de instalarlo, con el visor normal de windows aparecerá en el botón derecho la opción "Unlocker".
Con este profile de maven llamado "unlockTargetFiles" que solo se activa en entornos windows. si encuentra en el path de windows Unlocker.java lo ejecutará automáticamente en la fase de pre-clean.
Para que esto funcione correctamente hay que añadir al PATH de windows la  ruta de instalacion del programa, por defecto es esta "C:\Program Files\Unlocker\" y  tambien la variable "UNLOCKER" con el valor "true".

   
 <profile>  
      <id>unlockTargetFiles</id>  
      <activation>  
           <os>  
                <family>windows</family>  
           </os>  
           <property>  
                <name>env.UNLOCKER</name>  
                <value>true</value>  
           </property>  
      </activation>  
      <build>  
           <plugins>  
                <plugin>  
                     <groupid>org.codehaus.mojo</groupid>  
                     <artifactid>exec-maven-plugin</artifactid>  
                     <version>1.4.0</version>  
                     <executions>  
                          <execution>  
                               <phase>pre-clean</phase>  
                               <goals>  
                                    <goal>exec</goal>  
                               </goals>  
                          </execution>  
                     </executions>  
                     <configuration>  
                          <executable>Unlocker</executable>  
                          <workingdirectory>${project.build.directory}</workingdirectory>  
                          <arguments>  
                               <argument>-L</argument>  
                          </arguments>  
                          <successcodes>  
                               <successcode>0</successcode>  
                               <successcode>1</successcode>  
                               <successcode>2</successcode>  
                          </successcodes>  
                     </configuration>  
                </plugin>  
           </plugins>  
      </build>  
 </profile>