我以为我是一位经验丰富的Maven用户,但我对如何做到这一点感到心理障碍!
我已经能够使用Maven sql插件通过我已经定义并绑定到pre-integration-test
阶段的插件执行来删除,创建和安装数据库中的模式。
但是,现在我想使用相同的sql插件,只要我想从命令行插入一些示例数据 - 也就是说,没有绑定到任何生命周期目标。有几组不同的样本数据,所以我想定义一些不同的执行。
但是有没有办法通过使用执行ID从命令行运行其中一个执行?
答案 0 :(得分:110)
正如How to execute maven plugin execution directly from command line?所述,这是 功能implemented为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中配置的执行。
答案 1 :(得分:47)
但是有没有办法通过使用执行ID从命令行运行其中一个执行?
不,not possible。但是,当使用“特殊”default-cli
执行ID从命令行调用插件时,可以定义“a”配置:
<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 Release Notes):
- MNG-3401 - 从Maven 2.2.0开始, 目标直接从中调用 命令行可以配置在 POM与其他插件分开 使用特殊的调用
executionId
名为default-cli
。 以前的所有配置 命令行目标必须进入 插件级配置,Maven 2.2.0允许将命令行特定的配置分成 他们自己的<execution>
。更多 有关信息,请参阅Guide to Default Execution IDs。