13

我需要生成一些源,所以我在 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>

有什么想法可以解决这个问题吗?

4

2 回答 2

9

我有一个类似的问题,因为我使用了 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>
于 2011-07-17T14:00:22.317 回答
0

您是否碰巧将码头插件绑定到预集成测试,或者通过安装范围绑定到包中某处的某个阶段的其他插件?也许cobertura插件?jetty 和 cobertura 插件 - 以及其他插件 - 从主构建中分叉一个新构建来完成他们的一些工作。这将导致您的插件绑定到 generate-sources 执行两次。解决方案将根据导致问题的插件而有所不同。

于 2011-07-17T14:17:29.847 回答