2011-01-28 13 views
18

La package fase di un progetto con la confezione war, prepara una guerra esplosa nella cartella target e pacchetti questo nel finale war -file.punto di esecuzione tra il preparare-pacchetto e pacchetto Maven build-processo

È possibile apportare alcune modifiche, modificare file, rimuovere file e così via, tra le fasi prepare-package e package? Sto cercando un punto di estensione (Maven execution-phase) in cui le risorse sono già state copiate e nella struttura di guerra esplosa.

  1. [fase Maven] risorse Copia ed esplodere a target/{finalName}.
  2. [personalizzato] Esegui alcune modifiche personalizzate complesse (ad esempio implementate con maven-antrun).
  3. [fase maven] Imballare il materiale modificato nell'ultimo war.

Ho pensato che questo potrebbe essere possibile tra le fasi prepare-package e package. Sfortunatamente dopo lo prepare-package non è disponibile nessuna guerra esplosa da cambiare e confezionare in seguito.

Potete darmi un suggerimento su come raggiungere questo obiettivo? Grazie mille.

+0

Il plug-in Maven war può escludere i file e filtrarli. Forse le tue esigenze sono più complesse? – Raghuram

+0

Le esigenze sono più complesse, sì. Non posso usare questa funzione, non è abbastanza potente. – codevour

+0

Dovrai spiegare un po 'di più quali sono le tue modifiche [personalizzate]. A seconda di cosa sono, potremmo trovare diverse soluzioni al tuo problema. – SaM

risposta

15

Questa configurazione chiama l'obiettivo exploded nella fase prepare-package. Questo ti dà la possibilità di lavorare sulla directory war esplosa nelle successive definizioni di plugin, ad es. maven-antrun.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.1.1</version> 
    <executions> 
    <execution> 
     <id>prepare-war</id> 
     <phase>prepare-package</phase> 
     <goals> 
     <goal>exploded</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 
+0

Scusate, non ho approfondito questo argomento, ho finalmente implementato il mio war packager MOJO (ha scritto il mio plugin Maven) e ho riscritto il ciclo di vita per quello. – codevour

+1

Come hai ottenuto maven-antrun da eseguire dopo l'operazione preparatoria? Sto usando il plugin exec e continua ad essere eseguito prima. – HaxElit

+1

Inizialmente funziona, ma le modifiche apportate nella directory war esplosa vengono sovrascritte perché il plugin maven-war viene eseguito una seconda volta. Ricrea la directory di guerra esplosa con i file originali prima di confezionare il file di guerra.È comunque necessario configurarlo in modo che la seconda volta che viene eseguito, maven-war-plugin impacchetta solo la guerra esplosa in un file di guerra? – Nathan

1

Mi sembra che si debba associare l'attività di Antrun alla fase di preparazione del pacchetto, poiché a questo punto le risorse sono già state elaborate, vedere Lifecycle Reference.

Problemi correlati