运行单个Maven插件执行?

时间:2010-09-23 14:21:58

标签: database maven testing maven-3 maven-plugin

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

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

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

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

2 个答案:

答案 0 :(得分:110)

正如How to execute maven plugin execution directly from command line?所述,这是 功能implementedMNG-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
  •