我有一个插件(antrun),其执行配置具有id并且不绑定到任何阶段。我可以直接从命令行执行此执行吗?
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>my-execution</id>
...
</execution>
</executions>
</plugin>
用以下的方式运行它:
mvn my-execution
或至少
mvn magicplugin:execute -DexecutionId=my-execution
答案 0 :(得分:110)
此功能implemented为MNG-5768,可在Maven 3.3.1中使用。
改变将:
扩展直接插件调用语法以允许可选的@ execution-id参数,例如,org.apache.maven.plugins:maven-remote-resources-plugin:1.0:process @ executionId。
所以,在你的情况下:
mvn antrun:run
使用default-cli
执行ID,并且:
mvn antrun:run@my-execution
使用你的pom中配置的执行。
答案 1 :(得分:32)
执行maven插件的最直接方法是直接在命令行上指定插件目标。
mvn groupId:artifactId:version:goal
有关详情,请访问:Development guide for Maven plugins
答案 2 :(得分:13)
您正在寻找的内容已在Default+Plugin+Execution+IDs中捕获,但据我所知,目前尚不支持。但是,根据MNG-3401的评论(直到最后阅读):
直接从中调用mojos 命令行,你可以提供 从POM配置使用 executionId:'default-cli'像这样:
<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>
这应该适用于Maven 2.2.0和 3.X。
也许这对你来说已经足够了。