【问题标题】:Run a single Maven plugin execution?运行单个 Maven 插件执行?
【发布时间】:2011-04-16 07:33:10
【问题描述】:

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

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

但是,现在我想使用相同的 sql 插件在任何时候从命令行插入一些示例数据——也就是说,不受任何生命周期目标的约束。有几组不同的示例数据,所以我想定义几个不同的执行。

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

【问题讨论】:

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


【解决方案1】:

但是有没有办法通过使用执行 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 允许将特定于命令行的配置分成 他们自己的&lt;execution&gt;。更多 信息,请参阅Guide to Default Execution IDs

【讨论】:

  • 我打赌你可以通过使用两个不同的配置文件来实现你想要的
  • 这个答案现在已经过时了当前版本的 Maven。查看@Joe 提供的答案
【解决方案2】:

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 中配置的执行。

【讨论】:

  • 这很棒:)
猜你喜欢
  • 1970-01-01
  • 2023-01-12
  • 2016-02-27
  • 1970-01-01
  • 2018-10-17
  • 1970-01-01
  • 2011-09-16
  • 1970-01-01
相关资源
最近更新 更多