Sie können ein Ziel ausführen (und seine Ausführung) von der Kommandozeile aus Maven Start 3.3.1 auf und this neue Funktion, über die @executionId
zusätzliche Option.
In Bezug auf Maven und Ausführung IDs können Sie auch this SO question überprüfen.
Bevor Maven 3.3.1 Sie könnten stattdessen binden die beiden Ausführungen zu einer Phase, die normalerweise nicht schaden würde (wie validate
) und haben so etwas wie die folgenden:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>execution-1</id>
<phase>validate</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>something1</classifier>
</configuration>
</execution>
<execution>
<id>execution-2</id>
<phase>validate</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>something2</classifier>
</configuration>
</execution>
</executions>
</plugin>
Dann Ausführung:
mvn validate
Sie werden die beiden Ausführungen des gleichen Ziels des gleichen Plugins effektiv ausführen, als Teil einer harmlosen Phase.
Wenn Sie sich nicht als Teil dieser Phase durch default (verständlich) haben wollen, dann können Sie sie zu einem Profil bewegen und aktivieren Sie es als Teil der Ausführung:
mvn validate -PpluginGoalExecution
Der Vollständigkeit , sieht das Profil wie:
<profile>
<id>pluginExecution</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>execution1</id>
<phase>validate</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>something1</classifier>
</configuration>
</execution>
<execution>
<id>execution2</id>
<phase>validate</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>something2</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
und es versteht sich von selbst: die ID des Profils ganz selbst in diesem Fall erklärend über dem Plugin und es wäre auszuführen, die Ziel sein sollte, tatsächlich (das heißt, der Zweck das Profil, wie üblich).
aktualisiert
nur kosmetische, aber man könnte auch über das Element mit dem Profil Build hinzufügen:
<defaultGoal>validate</defaultGoal>
So dass Sie nur den folgenden Maven-Befehl (nur Profilaktivierung) zu laufen brauchen würden:
mvn -PpluginGoalExecution
Und es würde dann automatisch die Validierungsphase und die konfigurierten Plug-in-Ausführungen ausführen. Keine große Veränderung (wie gesagt, kosmetisch), aber vielleicht näher an einer Plugin-Zielausführung als an einem Maven-Phasen-Aufruf (wieder nur Aussehen).
Danke. Das ist eine gute Antwort. Leider bin ich immer noch auf Maven 3.0.5. – peterh
Wenn du auf Maven 3.0.5 bist, ist das nicht möglich ... Nur möglich über Profile, die über 'mvn -PXXX1 aktiviert werden können ...' ... – khmarbaise
@peterh ok Ich werde meine Antwort entsprechend aktualisieren, da gibt es einen Trick, es kann für Sie wert sein –