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

jav*_*pps 6 maven-2 maven-plugin maven

我有一个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>
Run Code Online (Sandbox Code Playgroud)

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

  1. 在构建开始时(在validate阶段期间).
  2. jar:jar执行.
  3. source:jar/ pre-integration-test?(?)之后,当Jetty正在启动时.

指定时的结果类似<phase>initialize</phase>.有没有办法让它只在构建开始时运行?

Ale*_*yak 5

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

source:jar正如其文档所指定的那样,肯定会这样做。

在执行自身之前调用生命周期阶段生成源的执行。

jar:jar通常不会,但可能您有另一个插件可以衍生另一个生命周期。

在生成源 jar 的情况下,您通常不需要另一个生命周期,插件作者通过实现jar-no-forkmojo认识到了这一点。

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