有条件地执行maven插件

Dón*_*nal 37 java maven-2

我在我的pom.xml中配置了一些Maven插件.我只是想,如果正在运行测试,执行这些插件(测试可以使用任何被跳过-Dmaven.test.skip=true-DskipTests).

其中一个插件绑定到process-classes构建生命周期阶段,另一个绑定到pre-integration-test阶段.

ten*_*shi 48

您可以使用具有以下特殊激活条件的配置文件:

<project>
  ...
  <profiles>
    <profile>
      <id>my-test-plugins</id>

      <activation>
        <property><name>!maven.test.skip</name></property>
        <property><name>!skipTests</name></property>
      </activation>
      <build>
        <plugins>

      <!-- define your plugins here -->

        </plugins>
      </build>
    </profile>
  </profiles>
</project>
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到更多信息:

http://books.sonatype.com/mvnref-book/reference/profiles-sect-activation.html

  • 这很好,如果只有1个配置文件需要插件,但如果我需要在2个不同的配置文件中运行相同的插件,我不想复制代码怎么办? (5认同)
  • 如何在不使用配置文件的情况下使用IF条件,因为它们不适合我?基本上,我为整个项目设置了一套配置文件.对于一个子模块,我需要根据当前配置文件选择aspect-j插件的配置.我怎么能用所提出的模型做到这一点,不确定...... (4认同)
  • 这实际上有用吗?看起来你在<activation>中只能有一个<property>元素. (3认同)
  • 似乎这回答了如何有条件地激活配置文件。但这不是最初的问题。最初的问题是如何有条件地激活插件(配置文件中的插件之一,而不是全部) (2认同)