Comment effectuer des tâches ordonnées dans la construction Maven2
Question
Je suis en train de migrer une application Java construite par Ant pour Maven2. Entre autres la construction effectuer les opérations suivantes:
-
L'exécution d'un doclet javadoc pour trouver des fichiers Java annotées d'être extériorisent plus tard en tant que services Web
-
compiler une petite partie du code pour l'étape 3
-
run java2wsdl axe sur le code compilé provenant de l'étape 2
-
produire du code Java avec wsdl2java sur les fichiers WSDL de l'étape 3
-
compiler tout le code
Lorsque vous essayez de « mavenize » le processus, je peux accomplir chaque tâche à la fois, mais ne parviennent pas à les atteindre tous dans cet ordre.
Pour démontrer mon pom et ne pas vous charger avec des détails que je vais vous montrer l'extrait suivant:
<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>
Le principal problème est que je n'ai aucun contrôle sur l'ordre des choses et il est évidemment important ici que chaque sortie étape est l'entrée de l'étape suivante.
La solution
Plugins lié à la même phase devrait être exécuté dans le même ordre que sont répertoriés dans le POM, mais ... il y a une question ouverte à ce sujet ( MNG-2258 ). Aussi jeter un oeil à la question connexe MNG-3719 (payer une attention particulière à < a href = "http://jira.codehaus.org/browse/MNG-3719?focusedCommentId=164221&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_164221" rel = "noreferrer"> ce commentaire ). Comme je ne pense pas que le « triche » de MNG-3719 est possible dans votre cas, ma suggestion est d'essayer avec Maven 2.0.8 :( Et croiser les doigts pour ne pas faire face à une régression.