Wenn Sie diesen Befehl als Teil des normalen Build-Lebenszyklus ausführen möchten, gibt es keine andere Möglichkeit als das exec
-Ziel in der Phase install
zu binden:
Ich habe einen einfachen Test unter Verwendung der obigen Konfiguration (mit ls
als "COMMAND") mit einem neu erstellten Maven-Projekt durchgeführt und das Ausführen von mvn install
erzeugt die folgende Ausgabe:
Wie wir sehen, wird der Befehl am Ende der Phase install
ausgeführt (nach der Kopie des Artefakts in das lokale Repository).
Und wenn Sie das Snippet wirklich nicht zu Ihrem Pom hinzufügen wollen, müssen Sie exec:exec
nach install
explizit auf der Kommandozeile aufrufen, wie von whaley vorgeschlagen.
Der standardmäßige Maven-Lebenszyklus endet mit den install und Bereitstellungszielen - es gibt keine Vor- und Nachversionen dieser Ziele.
Mögliche Optionen wären:
Binden Sie das exec: exec mojo mit der deploy-Phase. Ich warne Sie vor dieser Idee, da die Bereitstellungsphase eigentlich dazu gedacht ist, Artefakte in einem Remote-Maven-Repository bereitzustellen.
Führen Sie das exec: exec-Mojo nach dem Installationsziel in Ihrem mvn-Aufruf aus ... z. B.:
mvn clean install exec: exec -Dexec.executable="IhrKommando" -Dexecs.args="Argumente"
Wenn Sie ein Projekt mit mehreren Modulen haben, erstellen Sie am Ende Ihrer & lt; Module & gt; und bind exec: exec an eines der üblichen Ziele in diesem Modul. Dies wird dazu führen, dass dieses bestimmte Modul zuletzt ausgeführt wird, wobei andere Kriterien berücksichtigt werden, die der Reaktor berücksichtigt isn ' t erfüllt. Eine gemeinsame Strategie, die ich bei Maven-Projekten verwende, an denen ich arbeite, ist: "Wenn Sie Zweifel haben, erstellen Sie ein anderes Modul".