Maven插件在构建期间执行多次

时间:2011-11-07 19:41:00

标签: maven-2 maven maven-plugin

我有一个包含多个重叠配置文件的Maven项目。我想在每个构建开始时显示活动的配置文件。所以我将以下内容放入pom.xml <build>部分:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-help-plugin</artifactId>
    <version>2.1.1</version>
    <executions>
        <execution>
            <id>display-active-profiles-at-start-of-build</id>
            <phase>validate</phase>
            <goals>
                <goal>active-profiles</goal>
            </goals>
        </execution>
    </executions>
</plugin>

问题是插件在构建期间执行多次:

  1. 在构建开始时(validate阶段)。
  2. jar:jar执行时。
  3. source:jar / pre-integration-test期间(?),Jetty正在启动时。
  4. 指定<phase>initialize</phase>时的类似结果。有没有办法让它只在构建开始时运行?

1 个答案:

答案 0 :(得分:3)

它执行多次的原因是因为你的一个插件正在执行另一个生命周期作为其mojo的一部分。

source:jar肯定是这样做的,正如its documentation所指定的那样。

  

在之前调用生命周期阶段generate-sources的执行   执行自己。

jar:jar通常不会,但可能是你有另一个插件可以绕过另一个生命周期。

如果生成源jar,通常不需要其他生命周期,插件作者通过实现jar-no-fork mojo来认识到这一点。

您可以按照此处描述的步骤将其替换为默认jar mojo - &gt; http://maven.apache.org/plugins/maven-source-plugin/usage.html