如何直接从命令行执行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插件开发指南