运行单个Maven插件执行?


97

我以为我是一位经验丰富的Maven用户,但是我对如何执行此操作心存疑虑!

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

但是,现在我想使用相同的sql插件在需要时从命令行插入一些示例数据-也就是说,不绑定任何生命周期目标。有一些不同的示例数据集,因此我想定义一些不同的执行。

但是,是否有可能通过使用执行ID从命令行运行这些执行之一的方法?


Answers:


134

如何直接从命令行执行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中配置的执行。


这很棒:)
GabrielBB

49

但是,是否有可能通过使用执行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指南》

1
我敢打赌,您可以使用两个不同的配置文件来实现自己想要的功能
Daniel Kaplan 2013年

4
现在,此答案在Maven的当前版本中已过时。请参阅@Joe
Noremac
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.