运行一个Maven插件执行?

我以为我是一个经验丰富的Maven用户,但我正在思考如何做到这一点!

我已经能够使用Maven的sql插件,通过我已经定义并且绑定到pre-integration-test阶段的插件执行来在数据库中删除,创build和安装模式。

不过,现在我想使用相同的SQL插件插入一些示例数据,只要我想要从命令行 – 也就是说,不绑定到任何生命周期的目标。 有几个不同的样本数据集,所以我想定义一些不同的执行。

但有没有办法通过使用执行ID也许从命令行运行这些执行之一?

正如在如何直接从命令行执行maven插件执行中指出的? ,这个function已经被实现为MNG-5768 ,并且在Maven 3.3.1中可用。

改变将:

扩展直接的插件调用语法,以允许可选的@ execution-id参数,例如,org.apache.maven.plugins:maven-remote-resources-plugin:1.0:process @ executionId。

所以,只要你给你的执行一个id:

 mvn sql:execute@specific-execution-id 

使用在您的POM中configuration的执行。

但有没有办法通过使用执行ID也许从命令行运行这些执行之一?

不, 不可能 。 但是可能的是定义一个“a”configuration,当从命令行使用“special” default-cli执行id调用插件时:

 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>sql-maven-plugin</artifactId> <version>1.4</version> ... <executions> <execution> <id>default-cli</id> <configuration> ... </configuration> </execution> ... </executions> </plugin> 

只需调用mvn sql:execute

请参阅下面的细节(来自Maven 2.2.0发行说明 ):

  • MNG-3401-从Maven 2.2.0开始,直接从命令行调用的目标可以在POM中与其他插件调用分开configuration,使用一个名为default-cli的特殊executionId 。 以前,所有命令行目标的configuration都必须在插件级configuration中进行,Maven 2.2.0允许将特定于命令行的configuration分成它们自己的<execution> 。 有关更多信息,请参阅缺省执行标识指南 。