将多个模块maven 2项目导入eclipse工作区的问题

时间:2010-03-11 00:03:12

标签: eclipse maven-2 integration m2eclipse generated-code

我想知道是否有人遇到了和我一样的问题,可以帮助我。 我有一个包含6个模块的maven项目。一些模块相互依赖。该项目是用Java编写的,并构建为jar,wars和aar。我一直在尝试使用m2eclipse插件将其导入Eclipse。在项目构建之前,似乎工作正常。在构建过程中,我收到数百个错误,抱怨缺少生成的Java文件。正如我发现eclipse无法识别某些生成的包应该被解释为源代码。我不知道该怎么做,因为我花了很多时间试图解决这个问题。该项目正在使用命令行构建。我的目标是在Tomcat服务器上调试整个项目,这就是我想使用eclipse的原因,因为它与Tomcat有很好的集成。

非常感谢每一位帮助。

谢谢!

3 个答案:

答案 0 :(得分:2)

如常见问题的Why generated source folders are not added to classpath条目所述:

  

Maven插件用于生成源代码   来自资源或其他来源的代码   可以注册其他源文件夹   在构建期间到Maven项目。   通常这样的插件是必然的   流程资源(或   process-test-resources)构建阶段   (例如jaxb,modello或xdoclet   插件)。这意味着要获得那些   生成源的源文件夹,   我们必须运行相应的Maven   建立阶段。

     

并非所有项目都使用生成   来源,所以出于性能原因,   m2eclipse不会运行任何Maven目标   默认情况下,项目导入。这个可以   在Maven设置中更改   “窗口> 首选项... > Maven >   项目导入时运行的目标“(例如   你可以指定“进程资源”   构建阶段或特定插件   那个领域)。

     

或者,您可以运行“ Maven >   更新项目配置“操作   从项目弹出菜单,这是   配置为运行“进程资源”   默认情况下也可以更改   在同一个偏好页面上。

因此,要么将源生成过程绑定到的目标添加到导入时运行的目标列表,要么通过运行maven并更新项目配置来生成源。

答案 1 :(得分:0)

尝试使用mvn eclipse:eclipse

在您另外生成源的项目下。当它由maven生成时,它通常位于目标文件夹下。

因此eclipse:eclipse将识别此内容并添加为源文件夹。

Rembember在此之后刷新项目。

答案 2 :(得分:0)

使用 build-helper-maven-plugin (下面的示例)告诉Eclipse将生成的文件夹添加到构建路径:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>target/generated-sources/cxf</source>
                </sources>
            </configuration>
        </execution>
    </executions>
</plugin>

在每个生成源代码的项目的pom中添加它......