运行一个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>
。 有关更多信息,请参阅缺省执行标识指南 。