在eclipse Java项目中应该将哪些文件添加到SVN?

时间:2010-06-14 01:31:03

标签: java eclipse svn

我有一个Java项目,我想提交到我的SVN存储库,使用eclipse创建。

现在,哪些文件(除了源代码,显然)是必要的?在工作区根目录中,有一个包含许多文件和子文件夹的.settings文件夹,在项目文件夹中有两个文件 - .classpath和.project,另一个.settings文件夹包含一个文件 - org.eclipse.jdt.core .prefs。

哪些文件应该提交给SVN,哪些文件可以安全地排除?

3 个答案:

答案 0 :(得分:11)

如果您希望在整个团队中设置一致的设置,那么它们就非常有用。

.classpath.project意味着只需导入项目,每个人都可以启动并运行项目。每个人在签入时都会对项目中包含的库和源文件进行任何更改。

.settings目录包含代码格式化选项以及编译器认为是警告,错误或OK的内容。为了保持一致性,我也开始检查这些内容(只要团队中的每个人都同意格式化标准,我猜)。

我发现在Eclipse中跨版本控制共享内容的最大限制是在库定义中。库定义似乎只存储在每个用户的基础上,因此如果您在.classpath文件中引用“库”,则每个其他用户必须手动定义该库的内容(或手动导入导出的库定义文件)


编辑: (解决@ mliebelt在下面的评论)

如果您尝试在开发人员之间保持一致性/标准化,则只提交.settings文件。如果这不是项目的问题,那么不提交.settings文件就不用担心维护了。可能不需要提交特定于个人喜欢的插件的文件(虽然我不认为它会受到伤害,可能会被忽略?)。

我发现值得提交的两个最常见的是org.eclipse.jdt.core.prefsorg.eclipse.jdt.ui.prefs,它们是任何(Java)Eclipse项目的核心。

答案 1 :(得分:2)

您可以排除.settings文件夹,但.project文件对于想要重建相同的Eclipse项目的其他开发人员非常有用。如果检查文件,它应该只有相对引用(如果没有,你应该修改它。)

答案 2 :(得分:2)

与其他答案相比,我在没有在我使用的大型开源项目中检查.project 文件时获得了更好的体验。

您可能不同意我的意见,但共享.project文件存在一个问题:它们包含对项目中使用的项目性质的引用。项目性质再次取决于本地开发人员机器上安装的插件。

示例:如果在Java项目中使用Findbugs,则会在Java项目中添加新的特性。检查该文件,在另一个系统上修改它(没有安装Findbugs),然后再次在我的系统上使用它导致Findbugs引用丢失(因此所有Findbugs检查都被静默删除)。

但如果您可以让所有开发人员同意使用相同的工具,那么您可以轻松解决此问题。