如何直接从命令行执行maven插件执行?
我有一个插件(antrun)与一个configuration有一个id,并没有绑定到任何阶段的执行。 我可以直接从命令行执行这个执行吗?
<plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <id>my-execution</id> ... </execution> </executions> </plugin>
运行它像这样的东西:
mvn my-execution
或者至less
mvn magicplugin:execute -DexecutionId=my-execution
这个function已经被实现为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中configuration的执行。
你正在寻找的是在默认+插件+执行+ ID捕获,但据我所知目前不支持。 但是,根据MNG-3401的评论(直到最后):
对于直接从命令行调用的mojos,可以使用executionId提供configuration:“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中工作。
也许这对你来说就够了。
执行maven插件最直接的方法是直接在命令行中指定插件目标。
mvn groupId:artifactId:version:goal
更多信息请参阅: Maven插件开发指南