.classpath和.project-是否签入版本控制?


87

我正在运行一个开源Java项目,该项目由一个依赖树中的多个模块组成。所有这些模块都是子版本库中的子目录。对于我们项目的新手,要在eclipse中手动进行所有设置,这是很多工作。

并非我们所有的开发人员都使用eclipse。不过,我们正在考虑仅检入.classpath和.project文件以帮助新手入门。这是一个好主意吗?还是会导致这些文件不断发生冲突?有没有其他方法可以使项目易于在Eclipse上设置?


Answers:


65

绝对可以,正如我在“您是否将项目文件保持在版本控制下? ”中所述那样。

“加载,设置,开始。”

但是...这实际上仅对于最近的Eclipse3.5设置才是正确的,其中构建路径支持相对路径

构建路径支持相对路径


而Eclipse3.6会更好,因为它支持路径变量相对路径Linked Resources

具有相对路径的路径变量
(从3.6M5开始)


2
哇,我不知道他们加了这个...本来可以为我们省些麻烦
Uri 2010年

看来与此答案相关的图像是脱机的。
vkraemer

1
@vkraemer:是的。我现在已经还原了这两张照片,第一张来自archive.eclipse.org/eclipse/downloads/drops/R-3.5-200906111540/…,第二张来自download.itemis.com/mirror/eclipse/R-3.6 -201006080911。/…
VonC

17

绝对不能-通过Subversion分发项目文件通常是很糟糕的主意。特别是因为有人可能以某种奇怪的方式修改它们。在项目文档中写一个好页面是一个更好的主意。我们的项目还具有许多模块和复杂的设置。我们已经建立了一个融合页面,描述如何在每个Populer IDE(IntelliJ,Eclipse,NetBeans)上开始该项目。Subversion中的自述文件包含相同的信息。


31
我不同意 根据我的经验,最好将这些文件检入,以使检出尽可能容易。有人可能会以某种奇怪的方式改变它们?有人可能会以某种奇怪的方式更改您的代码...
Arne Deutsch 2010年

Arne,您应该将其作为答案,而不是评论。
amarillion

5
任何IDE的项目文件实际上都不是任何项目的一部分-如果您要分发它们,请-将它们附加到我提到的文章中。通常,团队中的每个人都可以修改存储库中的文件,但不是每个人都可以将新文件附加到重要的文档节点等上。对于一个人来说,很容易忘记忽略类路径和项目文件,并在不需要的时候提交它们。即使您将它们置于颠覆状态-您也应该将它们放在侧面某处……
Bozhidar Batsov 2010年

8
-1,完全同意。项目设置是项目日常工作的关键部分。意外检查错误设置的缺点远小于自动使每个人保持最新状态的优点。毕竟,您始终可以轻松地返回到以前的版本。
Michael Borgwardt 2010年

7
人人有权征求意见。实际上,我一开始就不会创建依赖Eclipse(或任何其他IDE的)项目系统的项目... Maven是最终的项目理解工具,并且使IDE特定的设置过时。顺便说一句,注意当前设置有问题并返回到以前的版本的时间与自己调整任何新设置的时间不太可能有所不同。至少在我公司,如果在进行较大的更改后需要某些用户干预,则团队中的每个人都会通过电子邮件收到通知。
Bozhidar Batsov

10

我投不赞成票,但这是因为我通常会从Maven生成这些文件


m2e可以为您完成大部分任务,但不能满足您的一切
Junjun Liu

6

以我的经验,不包括涉及纯本地设置的有限情况,所有内容都应在源代码控制中。源代码控制的法则是,所有推送的内容都应由退出的人预期。不幸的是,日食经常导致类似这样的事情发生.classpath

    <classpathentry kind="con" 
      path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 7"/>

因此,在我的Mac上,这可行,也许Mac上的某人具有相同的JRE,但这不适用于其他任何人。

同样,没有简单的方法可以解决此问题。Eclipse将始终在其中添加该文件。我希望在其中添加.classpath文件,因为我们的lib文件夹中存在一些我们关心版本控制的第三方JAR,因此我们将其保留在那里,因此新开发人员不必获取它们。我们正在移至托管系统,但仍签入了托管+非托管依赖关系。这意味着所有开发人员只需确保两个目录都位于.classpaths中。但是,这比每次拉动都必须修复JRE并在每次提交时都要对.classpath进行更改要好。

Eclipse可以为您做一些其他的事情。.project文件通常在各个实例中是相同的,因此请包括在内。但是,有关Eclipse的源代码控制的最好的事情是“运行配置”设置。在“运行配置”对话框的“常用”选项卡下,保存配置,以便配置在同事的“调试和运行”收藏夹列表中显示。对我来说,目录中有一堆.launch文件.settings,因此我们都可以使用它们。

所以我说:.settings目录进入启动配置的源代码控制(* .prefs除外)

.classpath 呆在外面

.project 进去。


即使在将执行环境用于JRE / JVM时也是如此吗?
Mr_and_Mrs_D 2013年

5

我将检入这些文件,以使新用户的入门尽可能容易。充其量,用户应该签出项目,并且应该能够在没有额外知识的情况下运行它。对于此文件,规则与项目中其他文件的规则相同:请谨慎处理。您不应在源代码中放置绝对路径,而应在配置文件中放置绝对路径。

如果以从头开始运行项目的方式检查文件,则应该没有太大的力量来更改它们。


5

我建议您将文件检入Subversion,前提是它们不包含绝对路径和其他将它们直接绑定到单个开发人员环境的数据。

如果文件确实包含绝对路径等,那么自述文件将是更好的选择。


2

是的,一定要签入它们,但是请确保您记录了所有路径依赖关系,并在可能的情况下避免使用绝对路径。

如果您不签入它们,那么签出项目的任何人都需要重新创建所有这些设置,这很烦人并且容易出错。

生成这些文件的脚本可能会更好地处理某些复杂的设置,但通常最好将它们检入。

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.