2010-03-15 12 views
6

Sto provando a migrare un'applicazione Java creata da Ant a Maven2. Tra l'altro la costruzione eseguire le seguenti operazioni:Come eseguire le attività ordinate in Maven2 build

1) Esecuzione di un doclet javadoc per trovare i file Java annotate essere esternare in seguito come servizi Web
2) compilare una piccola parte del codice per il punto 3
3) run Axis Java2WSDL sul codice compilato dal passaggio 2
4) produrre codice Java con WSDL2Java sui file WSDL dal punto 3
5) compilare l'intero codice

Quando si cerca di "mavenize" il processo che può compiere ogni attività alla volta, ma non riescono a raggiungerli tutti in questo ordine.

Per dimostrare il mio pom e non caricare con i dettagli vi farò vedere il seguente frammento:

<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> 

Il problema principale è che non ho alcun controllo su l'ordine delle cose ed è ovviamente importante qui dato che ogni uscita step è l'input successivo.

risposta

6

I plug-in legati alla stessa fase devono essere eseguiti nello stesso ordine in cui sono elencati nel POM ma ... c'è un problema aperto su questo (MNG-2258). Date anche un'occhiata al problema relativo MNG-3719 (rivolgi un'attenzione particolare a this comment). Dal momento che non penso che il "cheat" di MNG-3719 sia possibile nel tuo caso, il mio suggerimento è di provare con Maven 2.0.8 :(E incrociare le dita per non affrontare alcuna regressione

+0

Grazie. scrivere il mio plugin che esegua le operazioni di cui sopra è una possibile soluzione: posso creare un plugin con un obiettivo che esegua altri obiettivi di plugin? – rperez

+0

@rperez Non sono sicuro (vedi http://www.mail-archive.com/ [email protected]/msg104478.html). Non l'ho mai provato in realtà. –

Problemi correlati