执行一个 Maven 插件?

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

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

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

但是有没有一种方法可以通过使用执行 ID 从命令行运行这些执行之一呢?

74662 次浏览

但是有没有一种方法可以通过使用执行 ID 从命令行运行这些执行之一呢?

不,是 不可能。但是,可以使用“特殊的”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

详情见下文(来自 Maven2.2.0发行说明) :

  • MNG-3401 -从 Maven 2.2.0开始, 直接调用的目标 命令行可以在 POM 与其他插件分开 使用特殊的 executionIddefault-cli。 以前在哪里,所有配置 对于命令行目标必须进入 插件级别的配置,Maven 0允许将特定于命令行的配置分为 他们自己的 <execution>。更多 信息,请参见 < a href = “ http://maven.apache.org/Guide/mini/Guide-Default-execute-ids.html”rel = “ nofollow noReferrer”> Guide to Default 执行 ID .

正如 如何直接从命令行执行 maven 插件?中提到的 功能是 实施作为 MNG-5768,并在 Maven 3.3.1中提供。

这一变化将会:

扩展直接插件调用语法,以允许可选的@execute-id 参数,例如: org.apache.maven.plugins: maven-remote-resources-plugin: 1.0: process@ExectionId。

So, as long as you give your execution an id:

mvn sql:execute@specific-execution-id

使用在您的 pom 中配置的执行。