2012-06-12 17 views
5

Esiste un modo per eseguire l'esecuzione condizionata dello snippet in pom.xml? mia esigenza è quella di copiare un file/directory da distribuire struttura basata su variabile definita in pom.xml ...Maven - Come eseguire l'esecuzione condizionale

esempio:

<if> 
    < equals arg1="package" arg2="package"/> 
     < then> 
       .... 
      < /then> 
    < /if> 

Non so come posso raggiungere questo obiettivo!

Qualsiasi suggerimento sarebbe molto apprezzato.

Grazie, SR

risposta

4

Probabilmente avrete bisogno di utilizzare Maven AntRun Plugin per questo.

In generale, non ci sono espressioni condizionali in POM. L'unica cosa simile in qualche modo a questo sono build profiles che può essere attivato in alcune condizioni specificate, tuttavia probabilmente non si adattano al caso corrente.

E, alla fine, il mio suggerimento qui. Non sappiamo esattamente di che cosa si tratti e non abbiamo nemmeno un vero frammento di codice, tuttavia dalla mia esperienza è davvero insolito dover utilizzare tali elementi hackin in Maven. Per me ha l'odore di alcuni problemi con la comprensione di Maven, la struttura del progetto o cose del genere. Potrei sbagliarmi e forse il tuo caso ne ha davvero bisogno, ma consideri invece altre opzioni da inserire nell'approccio e nelle convenzioni di Maven.

+0

Grazie Michal. proverò i profili ... Ok, ecco il caso che sto cercando di eseguire. Ho definito plug-in per jspc, cobertura e findbugs con il mio progetto. ogni volta che eseguo build vengono eseguiti tutti questi plugin; quello che ho fatto è, ho definito una variabile chiamata phase in pom.xml (possibili valori null/package) .. quando questo valore è impostato su null ... questi plugin non vengono eseguiti. In questo caso, voglio modificare il mio war-plugin per saltare la copia della logica (riporta la logica di copia). – user1450759

+0

OK, quindi sembra che i profili funzionerebbero qui. –

+0

Ecco perché Gradle è molto meglio - avendo questo problema esatto. – JamesC

2

Bene, è possibile utilizzare lo profiles di Maven per farlo.

Oppure puoi dare un'occhiata a Ant Tasks di Maven.

Problemi correlati