I have a plugin (antrun) with an execution configured which has an id and is not bound to any phase. Can I execute this execution directly from the command line?
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>my-execution</id>
...
</execution>
</executions>
</plugin>
An run it with something like:
mvn my-execution
or at least
mvn magicplugin:execute -DexecutionId=my-execution
This functionality has been implemented as MNG-5768, and is available in Maven 3.3.1.
The change will:
extend direct plugin invocation syntax to allow optional @execution-id parameter, e.g., org.apache.maven.plugins:maven-remote-resources-plugin:1.0:process@executionId.
So, in your case:
mvn antrun:run
uses the default-cli
execution ID, and:
mvn antrun:run@my-execution
uses the execution configured in your pom.
The most direct means of executing your maven plugin is to specify the plugin goal directly on the command line.
mvn groupId:artifactId:version:goal
More information at: Development guide for Maven plugins
mvn jasypt:encrypt ...
) wasn't enough. Thanks @dimitri-dewaele.
What you're looking for is captured in Default+Plugin+Execution+IDs but to my knowledge currently not supported. However, according to the comments of MNG-3401 (read them until the end):
for mojos invoked directly from the command line, you can supply configuration from the POM using the executionId: 'default-cli' like this:
Maybe this will be enough for you.
Success story sharing
mvn antrun:run
?pluginGroups
for whyorg.apache.maven.plugins:maven-antrun-plugin
can be referred to asantrun
.