如何将一个非Eclipse Java项目从GIT导入到Eclipse?

43
我有一些问题将一个Java项目导入到我的工作区。我正在遵循此教程 - 但是,由于我使用的GIT存储库不包括特定于Eclipse的.project和.classpath文件,因此我无法使用最终的导入现有项目步骤。

使用新项目向导

因此,该项目无法被识别为项目,因此无法导入。因此,我尝试使用选项使用新项目向导并在下一个对话框中选择"Java项目"。问题是这会创建一个没有任何内容的新Java项目!该项目也未连接到GIT存储库。
编辑:这是eGIT的已知错误:Bug 324145 - Project import doesn't work for abitary project types,如果你想解决这个问题,请投票支持...

导入为通用项目

如果我使用导入为通用项目,Eclipse总是希望将外部存储库目录用作项目目录,这不是我想要的,并且创建的项目没有启用Java。 因此我想知道为什么使用eGIT将Java项目导入Eclipse如此复杂?
6个回答

38

首先需要克隆存储库,然后创建一个基于该存储库的General项目。然后您可以将其转换为Java项目。以下是操作步骤:

  • 首先进入文件>导入...>Git存储库导入项目
  • 选择Git存储库视图中,首先按克隆。然后按照提示进行操作。这将在您的计算机上创建一个本地的存储库“checkout”,您可以将其设置为您的工作区,使其看起来像您的Eclipse项目的任何其他项目。
  • 克隆存储库之后,返回到导入-视图。现在,您可以从列表中选择刚刚克隆的存储库。
  • 单击下一步并选择作为General项目导入。 现在您有了一个git存储库可供使用。
  • 将其转换为Java项目:将其他Java项目中的naturebuildCommand元素添加到您的.project文件中:

.project 中相关的部分:

<buildSpec>
    <buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
</buildSpec>
<natures>
    <nature>org.eclipse.jdt.core.javanature</nature>
</natures>

然后从项目(Project) > 属性(Properties) > Java Build Path > Source 中添加您的源文件夹(和可能的库)。

编辑:添加转换为Java项目的步骤。


在“选择Git存储库”视图中,您在哪里看到“克隆”?我只看到本地和URL。 - cinnamon toast
@cinnamontoast 我在寻找那个对话框中的“克隆”按钮,有什么建议吗? - raffian
在第二步中,我是从远程 Git 还是本地仓库中进行选择? - raffian
当我按照使用本地repo的指示操作时,在您的指示第4步中出现了“与另一个项目的位置重叠”的错误。有什么提示吗?编辑:请参见https://dev59.com/D2025IYBdhLWcg3wT0Pq#9463023。 - benvolioT
2
这些步骤很好,但是要在Eclipse中配置为Java项目,我会选择Project>Properties>Project Facets,勾选“Java”项目Facet,然后点击Apply和OK。 - jmarcosSF
应该还需要添加 .classpath 文件。 - 王奕然

7
使用Git(尤其是EGit)的两种最佳选择如下:
1)在Eclipse中创建一个Java项目,然后创建一个链接文件夹到源代码所在的git仓库(由@mattb提到)。我认为EGit不会轻易连接到您的git仓库,但是您的Eclipse特定项目文件将位于与源代码树不同的位置。
2)创建您的Java项目并让它指向外部git仓库(您提到的)。它将在源代码所在的位置创建一个.project和.classpath文件。然后使用“Team>共享项目”将允许您连接EGit到已经存在的git仓库。
选项2(我使用的)可以使工具可靠地处理git仓库中的Java项目。

选项2是个不错的想法 - 但是 eGit 不允许将项目共享到存储库的根目录(克隆文件所在的位置)。因此,它只允许将项目作为子目录共享 :( - Robert
这可能是真的,我正在处理的所有项目都是<repoDir>/bundle/project(s)的形式。 - Paul Webster
如果我可以给你10个赞,我会的。谢谢,这对我很有帮助。 - JPM
也许我漏掉了什么,但是使用选项2时,我在我的Eclipse工作区中创建一个Java项目,然后使用“共享项目”连接到位于“C:/Users/raffian/git”下的本地git存储库,这很好,但是完成后,Eclipse将项目从工作区移动到驻留在本地git存储库下;这正常吗?我不太喜欢直接在存储库文件夹中工作。 - raffian
是的,那很正常。在 git 存储库工作树下开展项目工作是最好的方式。这也是我们自己存储库的组织方式:http://git.eclipse.org/c/platform/eclipse.platform.ui.git/tree/ - Paul Webster

5

如果您的项目使用Maven,您可以在Eclipse中通过导入 Maven Project ,引入它,前提是您已经安装了 m2e。这样做将生成所有所需的文件,如 .project.classpath 等。我认为这是一个好方法,因为如果您的 pom.xml 编写得很好,它可以包含有关项目的所有必要信息,例如构建目标目录,类路径,Java版本等,并且它可能与大多数流行的IDE一起使用。

我建议养成在每个Java项目上都使用Maven的习惯,即使是简单的Hello World应用程序,因为我认为它是Java项目的一种“标准化”。


4

在此我看到了将非Eclipse项目导入Eclipse(开源git项目到Eclipse)的所有方法...不需要复制.project或.classpath文件...以下是逐步过程-

步骤1. 从git导入项目。粘贴URL并将项目导入为一般项目。

步骤2. 如果您想将其作为Maven项目导入,您应该在Eclipse(Eclipse市场)中安装M2E插件。

步骤3. 现在我们应该将这个一般项目转换为Eclipse项目。因此右键单击项目 ->属性 -> ProjectFacets。点击Convert to Faceted form

步骤4. 现在如果您的项目是Web项目,请查看左侧窗口...有一个DynamicwebModule选项...选中它(如果不是Web项目则留下它)...在右侧窗口上...切换到运行时选项卡。现在同时检查服务器和JDK版本...应用Ok。

步骤5. 如果它是Maven项目...然后右键单击项目配置 -> 转换为Maven项目 -> 完成


4
在Eclipse中创建一个新项目,将源目录指向现有的源代码路径,而不是默认路径。

1
我更喜欢在我的工作区内为每个项目设置一个目录。否则,当我需要直接访问目录时,我就必须记住每个项目在文件系统中的位置,而这种情况经常发生,因为Eclipse并不像资源管理器那样好用。 - Robert
那么,只需创建默认位置并复制源代码吗? - matt b

1

步骤:

  1. 将项目作为普通的git项目导入
  2. 右键单击项目,选择配置 -> 转换为Faceted From
  3. 现在选择你想要选择的Faceted,对于简单的Java项目,只需从复选框列表中选择Java即可
  4. 您可以根据需要在左侧的运行时选项卡下添加更多配置,在窗格下方的“Further configuration available..”链接下也可以进行进一步的配置。如果不需要额外的配置,只需要一个简单的Java项目,则可以跳过此步骤。
  5. 单击应用,然后单击应用并关闭。

它将把您的简单git项目转换为Eclipse的简单Java项目。

-- 开心编码 :)


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