如何将SVN中的多模块Maven项目导入Eclipse(Indigo),以便可以独立构建子模块?

时间:2011-10-27 10:14:27

标签: eclipse svn maven subversive m2e

我已经尝试在Eclipse Maven论坛上发布这个问题,但它似乎非常安静,所以这里......

我的设置: -Eclipse Indigo Java EE捆绑包 -m2e -Subversive

我们在repo上有一个相当简单的多模块maven项目。它有一个父项目/ pom和3个子项目/ poms。

我要导入的步骤: 1)我使用“import-> import-> - > Maven->导入项目”从SCM查看Maven项目“。

2)在下一个对话框中,我选择svn作为SCM URL类型,然后输入repo URL的其余部分。我选中“Checkout Head Revision”和“Checkout all Projects”复选框,然后选中“advanced”,我也会选中“Resolve Workspace Conflicts”复选框。我没有在“个人资料”或“名称模板”下输入任何内容。

3)在下一个对话框中,选中“使用默认工作区位置”并取消选中“将项目添加到工作集”,然后单击“完成”。

4)我等一下左右,出现下一个对话框。它要求我选择maven项目,并且有一个文件结构,因为它应该是 - parent project / pom和3个子项目/ poms,并且在所有4个项目旁边都有一个复选框。我试图选择只是父母,只选择孩子或全部4,但没有成功。

5)当我只选择父项并取消选中上面的子项时,项目似乎已导入。父项出现在项目资源管理器中,三个子项显示为父项的子文件夹,每个子项都有一个pom。

6)如果我右键单击父对象,我会在上下文菜单中看到一个Maven项目,实际上我可以“只运行as-> Maven构建,安装等等。”仅限父母。 Child项目没有这样的Maven上下文菜单,也没有“运行as-> Maven x”的能力。

如果我尝试在上面的步骤4中导入所有4个项目,则导入的结构与上面5中概述的结构相同,但子项另外显示为单独的“独立”Maven项目(有错误)。

最终我只想导入多模块Maven项目并能够在我的Eclipse Tomcat安装上进行部署,因此如果我更改其中一个子项目(称为前端)中的文件,则会快速部署更改,我可以在浏览器中查看效果。

非常感谢您对此问题的任何帮助!我很乐意回答任何进一步的问题,以帮助解决问题。

4 个答案:

答案 0 :(得分:0)

我的项目偶尔也会失去这种能力(尽管他们在导入后就已经没有了)。通常,它有助于刷新Maven配置,刷新/清理项目或重新启动Eclipse。请注意,仍然可以长时间运行它,因此“运行 - >运行配置 - > Maven”。

我正在运行Helios SR 2,m2e 1.0.0.20110607-2117。

答案 1 :(得分:0)

非常确定每个模块都必须拥有您需要提交的自己的.project设置。

答案 2 :(得分:0)

我在最初的问题中可能很难解释这个问题。主要问题是我无法将多模块maven项目的webapp组件部署到Tomcat。我犯了几个基本错误:

  • 我在没有选择子项的情况下导入父项目,假设Maven会全部获取它们就足够了,但事实并非如此:从svn导入为Maven项目时,我必须选择父项和所有子项。

  • 然后我无法将项目的webapp部分转换为分面类型,并且未能选择“动态Web应用程序”。我需要(根据一位同事的话)然后选择版本2.5以避免与旧的servlet容器不兼容。 (不确定这与我使用的Tomcat 6有多相关。)

一旦完成,我就拥有了父项目和3个子文件夹以及项目资源管理器中出现的3个子项目(但在文件系统中它们都存在于父项目下,应该是这样)。然后我可以右键单击webapp模块(eclipse项目资源管理器项目,而不是子文件夹)并作为Maven项目运行(清理,构建等)。

然后我可以右键单击并“在服务器上运行”。我发布有关各种文件不同步的错误。我刚刚在eclipse中刷新了子项目,然后他们会成功发布。

Eclipse有很多版本,有很多不兼容的插件等,很快就会让人感到困惑 - 许多教程都特定于特定版本等。

感谢你帮助无论如何。

答案 3 :(得分:0)

您是否安装了m2e WTP扩展程序?至少在理论上,这应该是比Maven / m2e控制之外的项目设置更好的选择。