从Git导入Maven项目到Eclipse

104

如何同时从Maven和Git导入项目并使Eclipse正确生成我的项目?

要将项目导入Eclipse,可以选择文件->导入->Maven,然后导入所有的Maven项目并能够顺利构建,或者选择文件->导入->Git,并创建一个忽略pom.xml的新项目,但是无法正确生成项目。

似乎我只能选择其中一种方式,而不能同时使用,以便获得正确生成的项目。

14个回答

109

Eclipse Indigo + M2Eclipse 1.0使此过程变得非常简单。

如果您尚未安装M2Eclipse的Git连接器,请安装它。M2Eclipse会在导入菜单中提示您。

  1. 从“Package Explorer”视图中选择“导入......”上下文菜单
  2. 在Maven类别下选择“从SCM检出Maven项目”选项
  3. 在弹出窗口上选择链接“在m2e Marketplace中查找更多SCM连接器”
  4. 找到Git的连接器... 安装... 重启

请注意,在搜索框中,您可能需要输入“EGit”而不是“Git”才能找到正确的连接器。

完成上述步骤后,只需转到EGit存储库,打开工作目录的上下文菜单,然后选择“导入Maven项目...”即可。

搞定!


4
我已经在Indigo中完成了这个操作,但是在Juno中有一个bug阻止m2e-git SCM的安装。https://bugs.eclipse.org/bugs/show_bug.cgi?format=multiple&id=383902 - Codey McCodeface
1
@medPhys-pl 这似乎是与 m2e 和 EGit 相关的问题,而不是 Git 本身的问题。 - Sri Sankaran
1
“简单”是相对的。整个eclipse市场都很混乱,maven仓库也很混乱,因为它们不跟踪兼容性,所以最终你会得到几十个几乎相同的软件包副本,现在添加一个“m2e市场”并不能使事情变得更好。 - Has QUIT--Anony-Mousse
1
@Anony-Mousse:我同意“易”是相对的。但是,我用它来描述我在解决原始问题(从Git存储库导入到Eclipse)时的经验。您的不满可能是有效的,但并没有被解决的问题。 - Sri Sankaran
2
第四步有更正,应该是“..EGit连接器..”。具体来说,在市场中搜索m2e-egit。 - nanospeck
显示剩余5条评论

45

我会通过命令行(在 Eclipse 外部)执行 git 克隆,然后使用 文件 -> 导入... -> 存在的 Maven 项目

您的项目将被理解为使用 Git 和 Maven。这是我认为导入最快、最可靠的方法。


3
是的,这绝对有效,但是新版本的m2已经与git和svn完美集成。正如其他人所指出的那样,EGit 1.0.0、m2e 1.0和m2e-egit 0.13可以让您在一步中将git -> materialize mvn项目转换为eclipse。 - thetoolman
嗯,我不得不右键单击项目并使用“团队>共享项目”等功能,以使EGit识别它是一个Git项目。 - Brian McCutchon

20

Step 1: 配置Eclipse

首先需安装几个Eclipse插件。请在“帮助”下拉菜单中使用Eclipse IDE软件安装功能,在“可用软件站点”中添加链接,然后进行安装。

  1. GIT插件(EGIT) - http://download.eclipse.org/egit/updates
  2. Eclipse Maven插件(M2Eclipse) - http://download.eclipse.org/technology/m2e/releases
  3. Maven SCM Handler for EGit (m2e-egit)

    从M2E Marketplace安装(设置→Maven→Discovery→打开目录并搜索“m2e-egit”)


Step 2: 克隆代码库

从Git克隆(下载)您的Maven项目

从Git检出非Eclipse Maven项目(文件→导入..→Maven→从SCM检出Maven项目)

File → Import.. → Maven → Check out Maven Projects from SCM

现在将您的git存储库链接添加到SCM URI字段。然后单击下一步和完成。


18
截至本文更新,一个可用的设置如下所示:
  1. Eclipse 3.8(Eclipse Indigo更新站点)
  2. EGit 1.3.0(Eclipse Indigo更新站点)
  3. m2e 1.0.200(Eclipse Indigo更新站点)
  4. m2e-egit 0.14.0(添加连接器时m2e市场)
在Ubuntu Raring上进行了测试。
你当然可以使用“导入”->“Maven”->“从SCM检出Maven项目”,这是最快的方式。然而,这种直接导入目前不会让您控制克隆的存储库文件夹名称。您最好从“Git存储库”视图中工作,并执行“从Git存储库克隆并将其添加到此视图”,然后再从该克隆执行“导入Maven项目”;最长的方法是手动克隆,然后再次执行“将现有本地Git存储库添加到此视图”,然后再次执行“导入Maven项目”。无论哪种情况,您都可以完全控制克隆的文件夹。
最后对一个让我沮丧得哭泣的次要问题发表评论。据我所知,如果克隆的存储库位于您的Eclipse工作区根目录上,而您的Maven项目文件层次结构在其根目录上有一个POM,则导入此根项目将重命名克隆文件夹(使用您选择的模板,默认为[artifactId])。在不更改项目结构且不将文件保留在工作空间之外的情况下,您可以轻松解决这个问题,方法是在工作空间文件夹的子子文件夹上进行克隆。

13

我一直在为我的项目测试这个。

  1. 使用Eclipse Indigo。
  2. "帮助 > 安装新软件",在"Eclipse Git Plugin .."启用/安装官方Git插件并全部安装。
  3. 按照这些说明启用Maven/EGit连接器(如何让git与m2eclipse集成?)
  4. 切换到Git仓库透视图。右键单击粘贴项目git url。默认应该都可以工作。你可能想改变它猜测的安装文件夹。
  5. 展开克隆的存储库,右键单击"Working Tree"并选择"导入Maven项目..."。
  6. 切换到Java透视图。右键单击项目并选择"团队 > 共享项目"。选择"Git"并确保勾选"在项目父文件夹中使用或创建存储库"。

1
是的,我也这样做了。不明白为什么m2e-egit不能自动执行第6步。 - xmedeko

6
这里是我的解决方法,针对以下问题:
  • 您无法安装m2e-egit(在Juno中会出现错误)
  • 将连接到Git存储库的普通项目转换为Maven项目未能成功(导入Maven项目步骤似乎很重要)
  • 从文件系统导入存储库中的Maven项目时,该项目与Git没有关联。

  1. Git存储库浏览透视图中设置您的Git存储库。
    • 切换到Java透视图,导入 > 现有的Maven项目
    • 在文件系统中浏览到您的Git仓库,选择包含pom.xml文件的目录。完成导入后, 您会注意到这些项目没有与Git连接。:(
    • 删除这些项目,但不要从文件系统中删除。 我们不希望克隆被删除;此任务还会留下.project文件,以便我们在下一步中导入。
  2. 返回 Git存储库浏览透视图。
    • 右键单击您的存储库,导入项目...
    • 选择导入现有项目
    • 在下面的资源管理器中,浏览到并选择包含pom.xml(和.project文件)的目录,然后单击下一步。
    • 继续进行向导。

在Eclipse Luna中,只需执行1.2步骤(在第一次导入后将项目连接到Git),就可以正常工作。 - PJ_Finnegan

5

无需安装任何附加连接器即可导入Mylyn:

  1. 打开“Git Repositories”视图(Window-> Show view-> Git Repositories)
  2. 点击“Clone a Git Repository”按钮并完成所有步骤
  3. 在新创建的存储库中展开“Working Directory”,右键单击项目文件夹,选择“导入项目”。然后选择“导入现有项目”或选择“导入为通用项目”。如果需要,在导入后右键单击您的项目并选择“配置”->“转换为Maven项目”(和Maven->更新项目)。

3

请注意,如果有不止一个开发人员在代码库上工作,将生成的元数据放入版本控制(无论是git还是其他scm)并不是一个很好的主意。两个开发人员可能拥有完全不同的项目或classpath设置。这只是一个提醒,以防您打算随时分享代码...


2

具体操作:打开Eclips,点击菜单栏中的Files >>Import>>Git>>Project From Git(需要先安装GIT)


2

我有一个包含三个子模块的maven项目,使用git进行管理。我按照以下步骤在eclipse中设置:

  1. 使用EGit将git存储库注册到eclipse中
  2. 导入现有的Maven项目
  3. 对于每个项目,我点击Team | Share Project

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接