从Git将Maven项目导入Eclipse


100

如何获得选择从Maven和Git导入并让Eclipse正确生成我的项目的效果?

为了使我的项目进入Eclipse,我可以选择File-> import-> maven,然后将所有Maven项目导入并可以正常构建,或者我可以选择File-> import-> git并创建一个忽略pom的新项目。 .xml,并且无法正确生成项目。

看来我可以做一个或另一个,但不能两者兼而有之,所以我得到了正确生成的项目。

Answers:


103

Eclipse Indigo + M2Eclipse 1.0使其非常容易。

如果您还没有用于M2Eclipse的Git连接器,请安装它。M2Eclipse将通过在“导入”菜单上提示您来帮助您。

  1. 从“程序包资源管理器”视图中选择“导入...”上下文菜单
  2. 在“ Maven”类别下选择“从SCM检出Maven项目”选项
  3. 在显示的窗口中,选择链接“在m2e市场中查找更多SCM连接器
  4. 查找Git的连接器...安装...重新启动

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

完成后,只需转到EGit存储库,调出Working目录的上下文菜单,然后选择“导入Maven项目...”。

做完了!


4
我已经在Indigo中完成了此操作,但是在Juno中当前存在一个错误,该错误阻止安装m2e-git SCM。bugs.eclipse.org/bugs/...
寇迪McCodeface

1
@ medPhys-pl这似乎是与m2e和EGit有关的问题,而不是与Git本身有关的问题。
斯里·桑卡兰

1
“容易”是相对的。整个Eclipse市场都是一片混乱,Maven重新发布市场却是一片混乱,因为它们无法跟踪兼容性,因此您最终获得了几乎完全相同的软件包的数十个副本,现在添加“ m2e市场”并不能使事情变得更好。
已退出–Anony-Mousse 2013年

1
@ Anony-Mousse:我同意“简单”是相对的。但是,我用它来描述我在解决原始问题(从Git存储库导入Eclipse)中的经验。您的抓地力可能有效,但无法解决。
Sri Sankaran 2013年

2
步骤4中有更正,应为“ ..EGit连接器..”。具体来说,在市场上搜索m2e-egit。
nanospeck

41

我将通过命令行(在Eclipse外部)执行git clone,然后使用File-> Import ...-> Existing Maven Projects

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


3
是的,这绝对可行,但是较新的m2终于与git和svn很好地集成了。正如其他人指出的那样,EGit 1.0.0,m2e 1.0和m2e-egit 0.13将为您提供git-> materialize mvn project使其一步一步消失。
thetoolman 2011年

嗯,我必须右键单击该项目并使用“团队>共享项目”等,以使EGit识别出它是一个Git项目。
Brian McCutchon '16

19

步骤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. EGit的Maven SCM处理程序(m2e-egit)

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


第2步:克隆存储库

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

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

文件→导入..→Maven→从SCM签出Maven项目

现在将您的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. 洋紫蓝
  2. “帮助>安装新软件”在“ Eclipse Git Plugin ..”启用/安装正式的Git插件并安装很多。
  3. 按照以下说明启用Maven / EGit连接器 如何使用m2eclipse进行git集成?
  4. 切换到Git Repository透视图。右键单击粘贴项目git url。默认值应该全部起作用。您可能想要更改其猜测的安装文件夹。
  5. 展开克隆的存储库,然后右键单击“工作树”,然后选择“导入Maven项目...”。
  6. 切换到Java透视图。右键单击项目,然后选择“团队>共享项目”。选择“ Git”,并确保选中“在项目的父文件夹中使用或创建存储库”框。

1
是的,我也一样。不要理解,为什么m2e-egit不会自动执行步骤6。
xmedeko 2012年

6

这是我的解决方法,这是解决这些问题的方法:

  • 您无法安装m2e-egit(Juno中出现错误)
  • 将普通项目(连接到Git存储库)转换为Maven项目对您不起作用(“导入Maven项目”步骤似乎很重要)
  • 从文件系统上的存储库导入Maven项目并没有显示连接到Git的项目。

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

在Eclipse Luna中,它在步骤1.2之后工作(项目在第一次导入后已连接到Git)。
PJ_Finnegan

4

导入而无需为Mylyn安装任何其他连接器:

  1. 打开Git Repositories视图(窗口->显示视图-> Git存储库)
  2. 按下Clone a Git Repository按钮并继续所有步骤
  3. 在新创建的存储库中Working Directory,右键单击包含项目的文件夹,然后选择Import Projects。然后选择Import existing projects,或选择Import as general project。如果需要,在导入后右键单击您的项目,然后选择配置->转换为Maven项目(和Maven->更新项目)。

3

您应该注意,如果有多个开发人员在代码库中工作,则将生成的元数据置于版本控制下(让它为git或任何其他scm)不是一个好主意。两个开发人员可能具有完全不同的项目或类路径设置。提醒您,如果您打算在某些时候共享代码...


2

我有一个带有三个子模块的Maven项目,这些项目在git中进行管理。我将它们设置在Eclipse中,如下所示:

  1. 我使用EGit在Eclipse中注册了git存储库
  2. 我将项目导入为现有的Maven项目
  3. 对于每个项目,我都去了Team | 分享项目

1

我宁愿将项目作为maven项目导入Eclipse,而不是git项目。这样做仍将项目内容识别为git内容。您可以继续从Eclipse执行git操作。正如您提到的,事实并非如此。

Eclipse中项目的性质不是基于保存项目的SCM,而是基于项目的类型(无论是war还是jar等),该类型是在将项目作为maven项目导入时自动确定的。

我不愿签入SCM IDE特定的元数据。这样做需要做很多事情-所有开发人员都在使用相同的IDE或IDE版本,也许是JDK / JRE的相同版本,因此他们在整个项目生命周期中将继续使用相同的版本,依此类推。


1

你不能导入它作为一个Git项目,然后(如果您在m2eclipse的安装)右键点击在该项目的Package Explorer > Maven> Enable Dependency Management


1
如果看不见,并且您已经安装了m2e,则打开.project文件,然后自己添加maven2性质:<name> org.eclipse.m2e.core.maven2Builder </ name>
dimitrisli 2013年

1

在Egit中签出我的分支后,我切换到Java视图,然后使用File-> Import,Git-> Git中的Projects,然后选择了顶级Maven目录。这是与Eclipse Kepler一起使用的。


-3

您可以一次生成项目元数据,然后将其与其余源代码一起放置在git存储库中,而不是通过import-> maven命令不断生成项目元数据。之后,假设您已安装maven工具,则使用import-> git命令将导入正确的启用maven的项目。

确保将项目目录中以“。”开头的所有文件放入源代码管理系统中。例如.classpath和.project以及.settings目录的全部内容。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.