我有一个包含多个重叠配置文件的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>
问题是插件在构建期间执行多次:
validate
阶段)。jar:jar
执行时。source:jar
/ pre-integration-test
期间(?),Jetty正在启动时。指定<phase>initialize</phase>
时的类似结果。有没有办法让它只在构建开始时运行?
答案 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