【问题标题】:Problems by import of a multiple modules maven 2 project into eclipse workspace将多个模块 maven 2 项目导入 Eclipse 工作区时出现的问题
【发布时间】:2011-01-26 04:05:26
【问题描述】:
我想知道是否有人遇到过与我相同的问题并可以帮助我。
我有一个包含 6 个模块的 Maven 项目。一些模块相互依赖。该项目是用 Java 编写的,并构建为 jars、wars 和 aar。我一直在尝试使用 m2eclipse 插件将其导入 Eclipse。在项目构建之前,它似乎工作正常。在构建过程中,我收到数百个错误,抱怨缺少生成的 Java 文件。我发现 eclipse 无法识别某些生成的包应该被解释为源代码。我真的不知道该怎么办,因为我已经花了很多时间试图解决这个问题。该项目正在使用命令行构建良好。我的目标是在 Tomcat 服务器上调试整个项目,这就是我想使用 eclipse 的原因,因为它与 Tomcat 有很好的集成。
我们将不胜感激任何帮助。
谢谢!
【问题讨论】:
标签:
eclipse
maven-2
integration
m2eclipse
generated-code
【解决方案1】:
如常见问题解答的Why generated source folders are not added to classpath 条目中所述:
用于生成源码的Maven插件
来自资源或其他来源的代码
可以注册其他源文件夹
在构建期间到 Maven 项目。
通常这样的插件绑定到
流程资源(或
过程测试资源)构建阶段
(例如 jaxb、modello 或 xdoclet
插件)。这意味着要获得那些
生成源的源文件夹,
我们必须运行相应的Maven
构建阶段。
并非所有项目都使用生成的
来源,因此出于性能原因,
m2eclipse 不运行任何 Maven 目标
默认情况下在项目导入。这个可以
在 Maven 设置中进行更改
"窗口 > 首选项... > Maven >
在项目导入时运行的目标”(例如
您可以指定“进程资源”
构建阶段或特定插件
那个字段)。
您也可以运行“Maven >
更新项目配置”操作
从项目弹出菜单中,即
配置为运行“进程资源”
默认情况下,也可以更改
在同一个偏好页面上。
因此,要么将源生成过程绑定到的目标添加到要在导入时运行的目标列表中,要么通过运行 maven 生成源并更新项目配置。
【解决方案2】:
尝试使用mvn eclipse:eclipse
在您另外生成源的项目下。当它由 maven 生成时,它通常位于目标文件夹下。
因此eclipse:eclipse 将识别并添加为源文件夹。
在此之后记得刷新项目。
【解决方案3】:
使用 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 中添加这个...