5

当我调用命令时,我希望 Maven 仅在命令行上有标志时运行某个插件mvn

例如:

假设我有一个名为maven-foo-plugin. --foo当我调用 maven 命令时,我只希望 maven 在存在标志时运行这个插件。

所以,与其说...

mvn install

...我会说...

mvn install --foo

第一个不应该使用/调用插件maven-foo-plugin,但第二个应该。默认情况下,我不希望此插件运行,但当且仅当--foo存在 时。我是否添加了另一个参数maven-foo-plugin来使其执行此操作?

我正在使用的插件maven-antrun-plugin具有解压缩文件的任务。当然,有时该文件存在,有时不存在。有时,它不存在,我也不需要它。所以,我需要一种方法(最好通过命令行,除非有人有更好的主意)来打开/关闭这个插件。

4

2 回答 2

7

在 maven 中触发条件操作的正确方法是使用 profile。您可以配置包括插件激活在内的特定配置文件,然后您将使用触发执行

mvn targetPhase -P myprofile

(您也可以指定特定的属性值来激活配置文件)

请参阅Maven:使用基于配置文件的插件

于 2013-03-20T13:14:42.733 回答
7

正如@Gab 所提到的,使用 Maven 配置文件是要走的路。创建一个配置文件并在配置文件中配置您的插件。然后在配置文件的activation部分,引用环境变量,带或不带值:

<profiles>
  <profile>
    <activation>
      <property>
        <name>debug</name>
      </property>
    </activation>
    ...
  </profile>
</profiles>

debug如果您在调用 Maven 时定义变量,上面的示例将激活配置文件:

mvn install -Ddebug

请注意,您必须在环境变量前面加上前缀-D,以便将它们传递给运行 Maven 的 JVM。

更多细节可以在这里找到:http ://maven.apache.org/guides/introduction/introduction-to-profiles.html

于 2013-03-20T13:57:32.480 回答