Maven阶段执行两次

时间:2010-11-23 07:26:51

标签: maven plugins phase

我需要生成一些来源,所以我将插件目标附加到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>

有任何解决问题的想法吗?

2 个答案:

答案 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插件 - 以及其他 - 从主要构建中分配一个新构建来完成他们的一些工作。这将导致您的插件绑定到生成源执行两次。解决方案将根据导致问题的插件而有所不同。