【问题标题】:Maven plugin executes multiple times during buildMaven 插件在构建期间执行多次
【发布时间】:2011-12-23 21:43:39
【问题描述】:

我有一个包含多个重叠配置文件的 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 正在启动时。

指定&lt;phase&gt;initialize&lt;/phase&gt; 时的类似结果。有没有办法让它只在构建开始时运行?

【问题讨论】:

    标签: maven-2 maven maven-plugin


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

    • 谢谢。这可能会大大缩短我的构建时间,因为前端/npm/bower/ember 步骤在执行一次时会很昂贵,更不用说执行 3 次了
    猜你喜欢
    • 2014-01-25
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多