我以为我是一个经验丰富的 Maven 用户,但我对如何做到这一点有一个心理障碍!
我已经能够使用 Maven sql 插件通过我定义并绑定到pre-integration-test
阶段的插件执行在数据库中删除、创建和安装模式。
但是,现在我想使用相同的 sql 插件从命令行插入一些示例数据——也就是说,不绑定到任何生命周期目标。有几组不同的样本数据,所以我想定义几个不同的执行。
但是有没有办法通过使用执行 ID 从命令行运行其中一个执行?
我以为我是一个经验丰富的 Maven 用户,但我对如何做到这一点有一个心理障碍!
我已经能够使用 Maven sql 插件通过我定义并绑定到pre-integration-test
阶段的插件执行在数据库中删除、创建和安装模式。
但是,现在我想使用相同的 sql 插件从命令行插入一些示例数据——也就是说,不绑定到任何生命周期目标。有几组不同的样本数据,所以我想定义几个不同的执行。
但是有没有办法通过使用执行 ID 从命令行运行其中一个执行?
如如何直接从命令行执行 maven 插件执行中所述?,此功能已作为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.xml 中配置的执行。
但是有没有办法通过使用执行 ID 从命令行运行其中一个执行?
不,不可能。但是,可以使用“特殊”执行 ID从命令行调用插件时定义要使用的“a”配置:default-cli
<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 中与其他插件调用分开配置,使用特殊
executionId
的default-cli
. 以前,命令行目标的所有配置都必须放在插件级配置中,Maven 2.2.0 允许将特定于命令行的配置分离到它们自己的<execution>
. 有关详细信息,请参阅默认执行 ID 指南。