J'ai un plugin (antrun) avec une exécution configurée qui a un identifiant et n'est lié à aucune phase. Puis-je exécuter cette exécution directement à partir de la ligne de commande?
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>my-execution</id>
...
</execution>
</executions>
</plugin>
Une course avec quelque chose comme:
mvn my-execution
ou au moins
mvn magicplugin:execute -DexecutionId=my-execution
Cette fonctionnalité a été implémentée comme MNG-5768 , et est disponible dans Maven 3.3.1.
Le changement:
étendre la syntaxe d'appel direct du plugin pour autoriser le paramètre facultatif @ execution-id, par exemple, org.Apache.maven.plugins: maven-remote-resources-plugin: 1.0: process @ executionId.
Donc, dans votre cas:
mvn antrun:run
utilise le default-cli
ID d'exécution, et:
mvn antrun:run@my-execution
utilise l'exécution configurée dans votre pom.
Le moyen le plus direct d'exécuter votre plugin maven est de spécifier l'objectif du plugin directement sur la ligne de commande.
mvn groupId:artifactId:version:goal
Plus d'informations sur: Guide de développement des plugins Maven
Ce que vous recherchez est capturé dans Default + Plugin + Execution + IDs mais à ma connaissance actuellement non pris en charge. Cependant, selon les commentaires de MNG-3401 (lisez-les jusqu'à la fin):
pour les mojos appelés directement à partir de la ligne de commande, vous pouvez fournir la configuration à partir du POM en utilisant le executionId: 'default-cli' comme ceci:
<plugin> <artifactId>maven-Assembly-plugin</artifactId> <executions> <execution> <id>default-cli</id> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> <descriptorRef>project</descriptorRef> </descriptorRefs> </configuration> </execution> </executions> </plugin>
Cela devrait fonctionner dans Maven 2.2.0 et 3.x.
Peut-être que cela vous suffira.