Ich lerne gerade Maven, und das mag offensichtlich sein, aber ich kann keinen einfachen Weg finden, die Ziele aufzulisten, die für jede Maven-Lebenszyklusphase für ein bestimmtes Projekt verbunden sind.
Ich habe gesehen, dass die Maven-Standardlebenszyklusphasen und die entsprechenden Standardziele hier dokumentiert sind . Mein bisheriges Verständnis ist, dass jede pom.xml zusätzliche Ziele an jede Lebenszyklusphase binden kann.
Gibt es also einen mvn-Befehl, um die Ziele zu bestimmen, die für jede Lebenszyklusphase eines bestimmten Projekts ausgeführt werden? Wenn nicht, muss ich wohl nur die pom.xml für jedes neue Maven-Projekt durchsehen, um das herauszufinden?
Das
buildplan-maven-plugin
ist ein hervorragendes Werkzeug, um zu zeigen, wie Ziele an Phasen gebunden sind.Unten finden Sie Beispiele für Befehle, die Sie ausführen können. Die Befehle laden das Plugin automatisch herunter und installieren es, falls es noch nicht installiert wurde.
Listen Sie die Ziele in der Reihenfolge auf, in der sie ausgeführt werden
Gruppenziele nach Phasen
Gruppenziele per Plugin
Anmerkungen
Standardmäßig suchen die Ziele nach Aufgaben, die ausgeführt werden, wenn der Benutzer sie aufruft
mvn deploy
. Phasen wieclean
werden nicht berücksichtigt. Verwenden Sie diebuildplan.tasks
Eigenschaft, um mehrere Phasen in die Suche einzubeziehen:quelle
mvn fr.jcgay.maven.plugins:buildplan-maven-plugin:list -Dbuildplan.tasks=clean,install,deploy
Ein hilfreiches Tool ist
mvn help:effective-pom
das Drucken des POM mit allen Variablen und allen erweiterten übergeordneten POMs. Dies hilft zu verstehen, was Maven sieht. Daraus ist es ziemlich einfach, alle zusätzlichen Ziele zu finden (die normalerweise nicht so viele sind).Das größere Problem sind die impliziten Ziele (dh wenn sich ein Plugin automatisch an einige Phasen des Lebenszyklus anschließt). Es gibt keine einfache Möglichkeit, diese zu sehen, ohne Maven tatsächlich auszuführen. Dies sollte in Maven 3 besser werden. Führen Sie bis dahin Maven aus, mit
-X
dem eine ganze Menge Debug-Ausgaben plus der aktuellen Phase gedruckt werden und welche Plugins ausgeführt werden.quelle
Wenn nicht mit Maven, sondern mit m2e, können Sie dies mit dem Codeblock tun, den Sie in einem Eclipse-Plugin verwenden können:
Schauen Sie sich die vollständige Quelle an .
Bereits implementiert in:
http://marketplace.eclipse.org/content/phases-and-goals
Es nutzt die Fähigkeit von m2e, die Zuordnung von Zielen zu Phasen zu berechnen. Ich versuche es auch auf Maven-Ebene zu lösen.
quelle
Ich habe die Antwort von Chad in ein Skript eingefügt (damit ich mich nicht an den Namen des Plugins erinnern muss, der wirklich lang ist). Legen Sie es in Ihrem Ordner ~ / bin / ab, damit Sie es überall verwenden können.
quelle