Cómo realizar tareas ordenadas en Maven2 acumulación
Pregunta
Estoy tratando de migrar una aplicación Java construido por Ant para Maven2. Entre otros la acumulación realizar las siguientes operaciones:
-
La ejecución de una doclet javadoc para encontrar los archivos Java anotadas para ser exteriorizar más tarde como servicios Web
-
compilar una pequeña parte del código para el paso 3
-
ejecutar Java2WSDL Eje en el código compilado desde el paso 2
-
producir código Java con wsdl2java en los archivos WSDL desde el paso 3
-
compilar el código completo
Cuando se trata de "mavenize" el proceso que se puede realizar cada tarea a la vez, pero no alcanzar a todos en ese orden.
Para demostrar mi pom y no se carga con detalles Voy a mostrar el siguiente fragmento:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.6.1</version>
<executions>
<execution>
<id>aggregate</id>
<phase>generate-sources</phase>
<goals>
<goal>aggregate</goal>
</goals>
<configuration>...</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<id>compileWSfiles</id>
<goals>
<goal>compile</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<includes>
<!-- include 3 source files -->
</includes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>axistools-maven-plugin</artifactId>
<version>1.3</version>
<dependencies>
<dependency>
<groupId>axis</groupId>
<artifactId>axis</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>java2wsdl</id>
<phase>generate-sources</phase>
<goals>
<goal>java2wsdl</goal>
</goals>
<configuration>...</configuration>
</execution>
<execution>
<id>wsdl2java</id>
<phase>generate-sources</phase>
<goals>
<goal>wsdl2java</goal>
</goals>
<configuration>...</configuration>
</execution>
</executions>
</plugin>
</plugins>
El problema principal es que no tengo ningún control sobre el orden de las cosas y es obviamente importante aquí como cada salida paso es la entrada siguiente paso.
Solución
Plugins unido a la misma fase debería ser ejecutados en el mismo orden en que se enumeran en el POM pero ... no es un tema abierto sobre esto ( MNG-2258 ). También eche un vistazo a la cuestión conexa MNG-3719 (prestar una especial atención a < a href = "http://jira.codehaus.org/browse/MNG-3719?focusedCommentId=164221&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_164221" rel = "noreferrer"> este comentario ). Dado que no creo que la "trampa" de MNG-3719 es posible en su caso, mi sugerencia es tratar con Maven 2.0.8 :( Y cruzar los dedos para no hacer frente a cualquier regresión.