【问题标题】:How do I import a multi module Maven project from SVN into Eclipse (Indigo) so that child modules can be built independently?如何将多模块 Maven 项目从 SVN 导入 Eclipse (Indigo) 以便可以独立构建子模块?
【发布时间】:2011-12-16 09:40:04
【问题描述】:

我已尝试在 Eclipse Maven 论坛上发布此问题,但那里似乎很安静,所以这里是...

我的设置: -Eclipse Indigo Java EE 包 -m2e -颠覆性的

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

我要导入的步骤: 1) 我使用“import->import->->Maven->Check out Maven Projects from SCM”来导入项目。

2) 在下一个对话框中,我选择 svn 作为 SCM URL 类型并输入其余的 repo URL。我选中了“Checkout Head Revision”和“Checkout all Projects”复选框,在“advanced”下,我也选中了“Resolve Workspace Conflicts”复选框。我没有在“配置文件”或“名称模板”下输入任何内容。

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

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

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

6) 如果我右键单击父项,我会在上下文菜单中获得一个 Maven 项,并且实际上我可以“运行为->Maven 构建、安装等。”仅在父项上。子项目没有这样的 Maven 上下文菜单,也没有“运行为->Maven x”的能力。

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

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

非常感谢您在此问题上提供的所有帮助!我很乐意回答任何进一步的问题以帮助解决问题。

【问题讨论】:

    标签: eclipse svn maven subversive m2e


    【解决方案1】:

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

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

    【讨论】:

    • 然而问题立即显现出来。我从一位同事那里找到了一个灵魂。我犯的错误是没有将子项目转换为多面项目(动态 webapp)并选择 2.5 版。在我这样做之后,我能够在服务器上运行(这是我真正需要做的——我解释得很糟糕)。感谢你们两位第一次使用 SO 回答,那么我该如何正确“总结”这个问题?
    • @PhilipMurphy 由于没有一个答案被证明是有帮助的,因此最受欢迎的做法是自己回答问题并接受答案。
    【解决方案2】:

    很确定每个模块都必须有自己的 .project 设置,您需要提交这些设置。

    【讨论】:

      【解决方案3】:

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

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

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

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

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

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

      感谢大家的帮助。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 嗨 Nicola,是的,我一开始就已经为 WTP 安装了 m2e 扩展。谢谢。
        • 其实我提到它是希望@FredBricon 加入;-)
        猜你喜欢
        • 2018-02-11
        • 2021-03-23
        • 2018-10-15
        • 1970-01-01
        • 2016-06-12
        • 1970-01-01
        • 2019-11-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多