我需要生成一些来源,所以我将插件目标附加到generate-sources生命周期阶段。
当我运行 mvn package 时,它运行正常,但是当我运行 mvn install 时,我注意到我的源生成插件执行了两次。
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>generate-sources-id</id>
<phase>generate-sources</phase>
<configuration>
<tasks>
<property name="build.compiler" value="extJavac" />
<ant target="generate-sources-from-ant" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
有任何解决问题的想法吗?
答案 0 :(得分:7)
我遇到了类似的问题,因为我使用了maven-source-plugin 解决方案是将目标改为jar-no-fork
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
<executions>
<execution>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
答案 1 :(得分:0)
您是否碰巧将jetty插件绑定到预集成测试,或者可能是某个其他插件通过安装范围绑定到包中的某个阶段?也许是cobertura插件? jetty和cobertura插件 - 以及其他 - 从主要构建中分配一个新构建来完成他们的一些工作。这将导致您的插件绑定到生成源执行两次。解决方案将根据导致问题的插件而有所不同。