运行单个Maven插件执行?

HDa*_*ave 87 database testing maven-plugin maven-3 maven

我以为我是一位经验丰富的Maven用户,但我对如何做到这一点有心理障碍!

我已经能够使用Maven插件SQL通过我已经定义并绑定插件处决下降,创建和安装一个架构在一个数据库pre-integration-test阶段.

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

但有没有办法通过使用执行ID从命令行运行其中一个执行?

Joe*_*Joe 117

正如指出的如何直接从执行命令行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
Run Code Online (Sandbox Code Playgroud)

使用你的pom中配置的执行.


Pas*_*ent 47

但有没有办法通过使用执行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>
Run Code Online (Sandbox Code Playgroud)

简单地打电话mvn sql:execute.

有关详细信息,请参阅下文(来自Maven 2.2.0发行说明):

  • MNG-3401 -启动Maven中2.2.0,直接从命令行调用目标可以在POM从使用一种特殊的其他插件调用配置分别 executionId称为default-cli.以前,命令行目标的所有配置都必须采用插件级配置,Maven 2.2.0允许将命令行特定的配置分离为自己的配置<execution>.有关更多信息,请参阅"默认执行ID指南".

  • 这个答案现在已经过时了Maven的当前版本.请参阅@Joe提供的答案 (4认同)