14

我正在尝试使用 maven 插件将 maven java 项目的源文件夹添加到 Eclipse。

尝试使用 org.codehaus.mojo 插件时,我收到以下错误

无法在项目应用程序框架上执行目标 org.codehaus.mojo:build-helper-maven-plugin:1.7:add-source (default-cli):目标 org.codehaus.mojo:build-helper 的参数“源” -maven-plugin:1.7:add-source 丢失或无效 -> [帮助 1]

通过阅读http://mojo.codehaus.org/build-helper-maven-plugin/usage.html上的文档,这应该是正确的吗?文件夹 target/sources/mygeneratedfiles 存在。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <executions>
        <execution>
         <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>target/sources/mygeneratedfiles</source>
                </sources>
            </configuration>
        </execution>
    </executions>
</plugin>
4

1 回答 1

14

问题是构建助手插件通常太旧而无法与最新的 maven 版本(与 m2e eclipse 插件结合使用)一起使用,因为“相对新”的生命周期映射规则。

我通过为 orgeclipse.m2e 插件的 build-helper-maven-plugin 添加生命周期映射配置解决了这个问题。见下文:

        <plugin>
            <groupId>org.eclipse.m2e</groupId>
            <artifactId>lifecycle-mapping</artifactId>
            <version>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
                    <pluginExecutions>
                        <pluginExecution>
                            <pluginExecutionFilter>
                                <groupId>org.codehaus.mojo</groupId>
                                <artifactId>build-helper-maven-plugin</artifactId>
                                <versionRange>[1.0,)</versionRange>
                                <goals>
                                    <goal>add-source</goal>
                                    <goal>add-test-source</goal>
                                    <goal>add-resource</goal>
                                    <goal>add-test-resource</goal>
                                    <goal>maven-version</goal>
                                    <goal>parse-version</goal>
                                </goals>
                            </pluginExecutionFilter>
                            <action>
                                <execute>
                                    <runOnConfiguration>true</runOnConfiguration>
                                    <runOnIncremental>true</runOnIncremental>
                                </execute>
                            </action>
                        </pluginExecution>
                    </pluginExecutions>
                </lifecycleMappingMetadata>
            </configuration>
        </plugin>
于 2013-02-18T14:22:16.170 回答