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

Eclipse .classpath和.project-是否签入版本控制?,eclipse,version-control,ide,Eclipse,Version Control,Ide,我正在运行一个开源java项目,它由依赖关系树中的多个模块组成。所有这些模块都是subversion存储库中的子目录。对于我们项目的新手来说,在eclipse中手动设置所有这些需要做很多工作 并非所有的开发人员都使用eclipse。然而,我们正在考虑只签入.classpath和.project文件,以帮助新手入门。这是个好主意吗?或者这会导致这些文件中不断出现冲突?有没有其他方法可以使项目在eclipse上易于设置?当然没有-通过subversion分发项目文件通常是个糟糕的主意。特别是有人可能

我正在运行一个开源java项目,它由依赖关系树中的多个模块组成。所有这些模块都是subversion存储库中的子目录。对于我们项目的新手来说,在eclipse中手动设置所有这些需要做很多工作


并非所有的开发人员都使用eclipse。然而,我们正在考虑只签入.classpath和.project文件,以帮助新手入门。这是个好主意吗?或者这会导致这些文件中不断出现冲突?有没有其他方法可以使项目在eclipse上易于设置?

当然没有-通过subversion分发项目文件通常是个糟糕的主意。特别是有人可能会以某种奇怪的方式修改它们。项目文档中的一个好页面是一个更好的主意。我们的项目也有许多模块和复杂的设置。我们已经建立了一个汇合页面,描述了如何在每个流行IDE上开始这个项目——IntelliJ、Eclipse和NetBeans。Subversion中的自述文件包含相同的信息。

我会将这些文件签入,以便新用户尽可能轻松地开始使用。用户最多应该检查项目,并且应该能够在没有额外知识的情况下运行它。对于此文件,规则与项目中其他文件的规则相同:小心处理它们。您不应该在源代码中放置绝对路径,而应该在配置文件中放置绝对路径


如果文件是以项目从头开始运行的方式签入的,那么应该不会有太多的力量来更改它们。

我建议您将文件签入subversion,如果它们不包含绝对路径和其他数据,而这些绝对路径和数据会将它们直接绑定到单个开发人员的环境


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

是的,一定要将它们签入,但请确保记录任何路径依赖项,并尽可能避免绝对路径

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


一些复杂的设置可以由脚本更好地处理以生成这些文件,但通常最好只是将它们签入。

肯定是的,正如我在“”中所说的

“装上,装上,走。”

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


Eclipse3.6会更好,因为它支持链接资源中路径变量的相对路径:



(自3.6M5起)

我投反对票,但那是因为根据我的经验,我通常会从maven生成这些文件,不包括涉及纯本地设置的有限情况,所有内容都应该在源代码控制中。源代码控制的法则是,所有被推进去的东西都应该由那些退出的人来完成。不幸的是,eclipse经常导致这样的事情出现在

    <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,我们关心版本控制,所以我们把它们放在那里,这样新开发人员就不必得到它们。我们正在迁移到托管系统,但仍然签入了托管依赖项和非托管依赖项。这意味着所有开发人员只需确保两个目录位于他们的
.classpath
s中。但这总比每次拉动时都要修复JRE,每次提交时都要更改.classpath要好

Eclipse为您做了一些其他的好事。.project文件通常在多个实例中都是相同的,所以请包括它。但是eclipse的源代码管理最好的地方是运行配置设置。在“运行配置”对话框的“公用”选项卡下,保存配置,以便在调试和运行的收藏夹列表下为同事显示这些配置。对我来说,一堆
.launch
文件放在
.settings
目录中,这样我们都可以使用它们

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

.classpath
不显示


.project
开始了。

我不同意。根据我的经验,将这些文件签入以使签出尽可能容易是件好事。有人可能会以某种奇怪的方式改变它们?有人可能会以某种奇怪的方式更改您的代码…Arne,您应该回答这个问题,而不是发表评论。任何IDE的项目文件实际上都不是任何项目的一部分-如果您想分发它们,请将它们附加到我提到的文章中。通常,团队中的每个人都可以修改repo中的文件,但不是每个人都可以将新文件附加到重要的文档节点等。很容易有人忘记忽略类路径和项目文件,并在不应该的时候提交它们。即使你把他们关在subversion里-你当然应该把他们关在一边的某个地方…-1,完全不同意。项目设置是项目日常工作的关键部分。意外检查错误设置的缺点要比自动让每个人都保持最新的优点小得多。毕竟,你可以很容易地回到以前的版本。每个人都有权发表意见。事实上,我从来没有创建过一个依赖Eclipse(或任何其他IDE)项目系统的项目。。。Maven是最终的项目理解工具,它使特定于IDE的设置过时。顺便说一句,是时候注意到当前设置有问题并返回