在Git中管理Eclipse Java项目

8

我正在努力找出在GIT中创建Java项目的最佳方法。特别是,我想创建Git存储库,以便在Eclipse中从Git导入时,可以自动正确创建项目,并保留所有其.project设置和所有其他设置。也就是说,如果我在我的workspace/文件夹中执行git clone javaEclipseProject,然后在该javaEclipseProject文件夹上进行导入,它将打开项目而无需使用新项目向导。

4个回答

5
将点文件(.project,.classpath和.settings目录)添加到Git存储库中。这就是我们使用Git插件本身所做的事情。

那么首先在 Github 上创建最基本的内容,例如仅限于点文件?然后克隆到 Eclipse 中,创建项目文件夹、包、Java 文件等,然后上传到 Git?这些是要遵循的基本步骤吗? - raffian

2

我相信你可以做到这一点......但是就连我工作的公司,.project文件也无法在不同的机器之间进行移植。如果你能够用Ant或Maven构建项目并将其检查入库,那么Eclipse、Netbeans和/或IntelliJ就能够从头开始检出项目并构建它们自己的.project文件。

接下来我们谈论一下更为“烦人”的问题,个人而言,我喜欢Maven、Ivy或“插入很多其他Ant++构建工具”会自动查找并下载你可能尚未安装的任何依赖项。我很遗憾地说,在我使用过Maven的时间里,Eclipse的支持最不易于使用,虽然我不使用IntelliJ,但我的同事说它的集成是无缝的,而Netbeans对Maven的支持则完美无缺。

当然,你的情况可能有所不同。


5
哪些插件会生成不可在不同机器间传输的.project文件?我们把所有项目的.project文件都存放在版本控制中,从没遇到过问题。 - Hendrik Brummermann
我也想知道。 - Thorbjørn Ravn Andersen
不是插件,主要是依赖问题。如果我系统上的文件路径或库路径与你的不匹配,我不能仅使用基本的Eclipse配置进行检查并编译。如果你正在使用一些我从未听说过的开源jar包,并且如果你没有同时检查所有依赖项(我们没有这样做),那么为什么我需要在“源”控制中拥有四万个log4j的副本?正如我上面所说的,这更多地涉及到你喜欢的工作方式,我认为这是一个“宗教”问题。 ;) - mezmo

0

我不确定在问题被提出时是否已经存在,但是现在Eclipse有一个新的插件叫做EGit,你可以在Eclipse中导入git项目,提交、推送、拉取、合并等操作。我最近才发现这个插件,非常有用。

如果我没记错的话,EGit现在已经内置于Eclipse Mars中,无需手动添加。所有的git功能都可以通过右键单击项目并悬停在团队选项上找到。我经常与Bitbucket一起使用它。

你可以在这里找到EGit http://www.eclipse.org/egit/

Eclipse Mars在主页上 http://www.eclipse.org/

enter image description here


0
你可以创建一个名为eclipse的分支,将你的额外eclipse项目文件存储在主分支旁边。要这样做,你基本上需要做以下几步:
  1. 创建一个git仓库
  2. 暂存你的文件,添加一个内容为eclipse的.gitignore文件,例如this one,提交所有更改
  3. 创建一个名为eclipse的新分支
  4. 修改你的.gitignore文件或清空它,以便跟踪你的其他文件
  5. 在项目目录中执行git config merge.ours.driver true
  6. 仍然在你的eclipse分支上,创建文件.gitattributes并添加这一行:.gitignore merge=ours。这将使git在执行合并时始终保留eclipse分支版本的.gitignore。
  7. 暂存你的.project文件及其与eclipse相关的兄弟文件以及你新创建的.gitattributes文件
  8. 提交所有这些东西后,你的两个分支就“同步”了,唯一的区别是你的eclipse分支还包含项目配置文件。

一旦您对源文件进行更改并将其提交到主分支,您可以使用--no-ff选项将这些更改合并到eclipse分支中。重要的是,当使用此方法时,您永远不要在eclipse分支上执行快进式合并!同时,永远不要直接将源文件的更改提交到您的eclipse分支,而是始终将它们合并到主分支 - 这样您就永远不会遇到合并冲突,并保持简单。


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