Domanda

Ho creato un plug-in Maven2 personalizzato usando Ant. Vorrei chiamare un altro plug-in Maven, in particolare il plug-in Cargo Maven2 immediatamente dopo il completamento del plug-in Ant personalizzato. Tuttavia, non voglio collegare il plug-in Cargo a un altro obiettivo o fase. C'è un modo per farli funzionare consecutivamente senza dover scrivere uno script batch? È possibile che il plug-in Formica personalizzata chiami il plug-in Cargo?

È stato utile?

Soluzione

Vedi questa discussione: Ri: chiamare un plugin in un altro plugin? Secondo gli sviluppatori Maven, non è così che dovrebbero funzionare i plugin.

Tuttavia, c'è questo interessante commento:

  

Plugin / Mojos dovrebbero essere involucri sottili attorno a una libreria. Si desidera utilizzare direttamente la libreria.

Cargo non è solo un plugin Maven, ma ha anche un'API Java e un Task Ant . Quindi potresti probabilmente:

  • chiama l'attività Cargo Ant dal tuo Ant mojo (penso che avrai solo bisogno dei Cargo JAR nel percorso di classe del tuo plugin);

  • riscrivi il tuo Ant mojo in Java e invoca l'API Cargo (ti consigliamo di consultare le fonti del plugin Cargo).

Altri suggerimenti

Lo script Ant che esegue il plugin maven-ant non è veramente a conoscenza di Maven in quanto tale; questo plugin è progettato per la retrocompatibilità con attività Ant personalizzate. Non riesco a pensare a un modo pulito di fare ciò che vuoi, anche se potrebbe esserci un qualche tipo di hack che ti consente di farlo.

Dovrebbe anche essere possibile eseguire una seconda istanza di Maven dall'interno di Ant, che esegue puramente l'obiettivo Cargo, ma in tal caso potresti riscontrare problemi con file bloccati e simili. Il modo per farlo sarebbe semplicemente usare un tag nel tuo script Ant e chiamare " mvn " eseguibile con gli obiettivi appropriati come argomenti.

Il modo più pulito è semplicemente vincolare l'obiettivo Cargo a una fase della costruzione e farlo correre dopo che Ant è terminata. Non vedo alcun svantaggio di questo approccio - non hai davvero indicato alcun motivo specifico per cui vuoi evitarlo.

Potresti essere interessato ai due seguenti maven

Il plugin GMaven ti consente di scrivere plugin di Maven usando groovy. Questo ti dà pieno accesso alla formica usando Ant Builder , è un vero modo semplice per scrivere script di formiche in Groovy. Quindi in questo Grojo Mojo puoi chiamare qualsiasi Moven Mojo usando il Mojo Executor.

Ho usato quelli in diversi plugin personalizzati maven e non ho trovato un modo più semplice per scrivere e combinare mojos.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top