我应该提交由eclipse更改的文件吗?

时间:2011-01-27 10:06:10

标签: java eclipse svn subclipse

我以eclipse项目的形式继承了一个java项目。更改tomcat配置后(从v6到v7),subclipse提示我提交以下文件

  • 的.classpath
  • org.eclipse.core.prefs
  • org.eclipse.common.project.facet.core.refs
  • org.eclipse.common.project.facet.core.xml

是否会让他们帮助我的团队成员,还是会弄乱他们的工作空间?

最佳做法是什么?

8 个答案:

答案 0 :(得分:11)

一般来说,您应该签入(并在更改后提交)所有有助于构建的内容,并且不能通过完全重新构建来重新生成并且是特定于工作站的。 (此语句的含义取决于您的构建过程/过程。)

这意味着您应该排除在完全构建等时重新生成的所有内容,因此不会签入(并且不提供签入)。

答案 1 :(得分:5)

作为一般规则,您应该避免提交包含用户首选项的文件,以及Eclipse和/或插件可以重新生成的项目详细信息。

但在某些情况下,事情有点模糊。例如,.classpath文件可以是Eclipse构建路径的主要来源;例如如果您在项目树中有JAR文件而不是使用Maven。 (使用Maven,m2eclipse插件根据POM文件中的依赖关系信息生成.classpath文件,因此不应检入该文件。)

此外,一些方面的东西是临界的。例如,在使用JSP和Javascripts的项目中,我发现必须更改构面属性以禁用损坏的验证器。并且有一个很好的例子可以将这些变化作为项目的一部分而非个人偏好来处理。

将群组/项目偏好与个人偏好分离是(IMO)Eclipse严重缺乏的一个领域。

答案 2 :(得分:4)

最好不要提交这些文件,因为路径/设置可能在不同的工作站上有所不同。

您可能想使用一些构建工具来克服这个问题。 (例如,Maven)

好像任何团队成员没有使用eclipse(使用其他一些ide),这些文件对他们没有任何意义。

如果每个人都提交不同的IDE设置,想象它会造成什么样的混乱。

编辑:

更多解释;

我曾在团队中工作,人们使用NetBeans,Eclipse,IDEA ......很长一段时间,并不是他们真正改变IDE的选择。它只会影响那个人的生产力。

当人们习惯他们的IDE他们学习shorcuts时,他们知道在哪里寻找一些功能(重构/生成getter setter /实现覆盖所需的方法....)所以如果你强迫他们使用其他IDE它会只是让事情变得更难,整个过程变得更慢。恕我直言,根据我的经验,拥有灵活的代码库总是很好。我是一个日食家伙,可能不想与任何其他IDE一起工作,因为我知道很多shorcuts让我的事情变得更快/更容易,并且那些shorcuts在不同的IDE上是不同的。

IDE本身可以自动重新生成所有IDE文件,只需点击几下即可。

我目前的项目有3个开发人员,每个人使用不同的IDE eclipse(我),NetBeans,IDEA没有任何问题。我不想看到IDEA或NetBeans配置文件,当我从repo检查源时,这对于eclipse没有任何意义。同样对他们来说也是如此。

答案 3 :(得分:4)

是的,尽管确保路径在工作空间中是相对的而不是绝对路径。在工作区中放置这些文件后,您的团队成员可以在与您相同的环境中工作。它还使得设置新的开发环境变得更加容易:您只需从源代码控制中检查它,并在Eclipse中使用“导入...”>现有项目进入Workspace'

正如@adamdunne所提到的,这些文件可以包含特定于环境的路径。但是,如果你小心确保路径在你的工作区内是相对的,通过使用变量和不导入外部jar,即只包括工作区中项目的jar,那么你应该没问题。在我的工作区中,我们检查这些文件,并且设置dev的问题要少得多。环境以来。

答案 4 :(得分:1)

我在提交.classpath文件的项目中工作,因为所有开发人员使用相同的内容非常有用:)如果您只在工作区内使用依赖项,则此文件使用相对路径,因此在所有计算机上都应该相同。即使这个文件可能不需要构建(例如使用ant),同步它也非常方便。

相比之下,org.eclipse.core.prefs存储(afaik)项目特定的,但个人偏好的开发人员,我不会检查。

有了这个方面,我还没有在一个真实的项目中工作,所以我无法分辨。但总的来说,我认为这取决于文件中的信息和工作方式。

如果您不确定,请尝试一下。如果你整天都在这些文件中发生冲突,这是一个提示,你可能没有完美的方式。

答案 5 :(得分:1)

这些文件对于在开发人员之间共享配置非常有用。另一种方法是使用Maven(对于已建立的项目来说这是一项艰巨的任务),或者使用不断过时的逐步说明和新开发人员花费半天时间,直到他们甚至可以构建项目。

但是,您应该注意确保这些配置是可移植的,即不包含本地路径。这可以通过使用工作空间中的相对路径,eclipse路径变量和用户库来完成。

答案 6 :(得分:0)

我们所做的是忽略这些文件,因为它们可能会搞乱项目中其他人的工作空间。

忽略它们也会让你的项目更清洁,我一直都喜欢。

答案 7 :(得分:0)

这些文件可以包含特定于环境的路径,因此我建议不要检查它们。在我当前的项目中,我们使用ant脚本来创建项目并对我们所有代码进行初始检查。