Wie kann ich mehrere Maven -Plugins in einer Phase ausführen und ihre jeweilige Ausführungsreihenfolge festlegen?

StackOverflow https://stackoverflow.com/questions/2509513

Frage

Ich möchte bestimmte Phasen im Lebenszyklus des Maven -Lebens in Unterphasen unterteilen. Ich möchte den Ausführungsfluss von einer Unterphase in eine andere steuern, ähnlich wie bei Ant-Abhängigkeiten.

Zum Beispiel möchte ich das NSIS -Plugin verwenden, um mein Projekt in ein Installationsprogramm in der Paketbühne zu verpacken, nachdem mein Projekt in eine Kriegsdatei verpackt worden war. Ich möchte das alles in der Paketphase machen.

Ist das möglich?

Vielen Dank

War es hilfreich?

Lösung

Plugins, die an dieselbe Phase gebunden sind sollte sein in der gleichen Reihenfolge ausgeführt wie sie im POM aufgeführt sind. Unter bestimmten Umständen (z. B. wenn Sie das gleiche Plugin zweimal an eine Phase wie das Antrun -Plugin binden) ist dies möglicherweise nicht der Fall, dies ist jedoch ein Fehler (siehe MNG-2258 und das damit verbundene Problem MNG-3719).

Andere Tipps

Ich hatte das gleiche Problem. ansehen So führen Sie geordnete Aufgaben im Maven2 -Build aus. Aus irgendeinem Grund werden die unterschiedlichen Ziele, die an eine Phase gebunden sind, in einer Hash -Karte oder einer anderen ungeordneten Struktur gespeichert, die die Ausführungsreihenfolge zufällig macht. Meine Lösung bestand darin, die Aufgaben auf verschiedene Phasen zu verteilen, aber ich glaube nicht, dass es in Ihrem Fall viel dafür gibt (NSIS -Verpackung ist kein Vorintegrationstest). Sie könnten eine der folgenden machen:

1) Versuchen Sie Ihr Glück und prüfen Sie, ob Maven die richtige Bestellung für Sie kehrt (Sie haben es wahrscheinlich bereits versucht)

2) Verwenden Sie das eigenständige Plugin - Führen Sie das Ziel außerhalb des Lebenszyklus. So etwas wie: MVN-Paket org.codeehaus.mojo: NSIS-Maven-Plugin: 1.0: kompilieren.

3) Trennen Sie sie in das Modul: Lassen Sie einen übergeordneten POM mit zwei Submodulen enthalten, eines - Ihr Kriegsprojekt und das andere für das NSIS -Projekt.

4) Verwenden Sie einen benutzerdefinierten Lebenszyklus, indem Sie den Typ ändern. In Ihrem Fall können Sie "exe" verwenden. Dies erfolgt mit einer benutzerdefinierten Plugin -Erweiterung (Anleitung zur Verwendung der Erweiterung)

5) Verwenden Sie die jetspeed-mvn-maven-plugin. Ich habe es nie benutzt, aber es erscheint für Ihre Bedürfnisse relevant.

Ich hoffe, das gibt Ihnen neue Ideen.

Ronen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top