.settings/org.eclipse.jdt.core.prefs是项目的一部分吗?

Mic*_*ann 29 eclipse version-control

该文件.settings/org.eclipse.jdt.core.prefs是项目的一部分还是我个人eclipse配置的一部分?

我应该将它添加到版本控制吗?

Ban*_*zen 25

是的你应该.如果此文件不受版本控制,则无法创建同一项目的可重现版本,因为它不再是自包含的,而是取决于您的特定Eclipse安装及其设置.

如果将此项目导入另一个工作区(在您或任何其他计算机上),它可能会表现完全不同,因为编译器合规性设置,编译器警告配置和许多其他内容突然丢失或不同.这样一个项目突然在新工作区中显示警告/错误的可能性很高,而之前完全没问题.

注意:这也要求您实际配置Project属性中的所有Java相关设置.如果要包含自包含项目,切勿在Window - > Preferences下使用Java编译器设置.

举一个具体的例子:如果您已将项目编译器合规性级别配置为Java 6,因为您使用的是Java 6特定功能(如在接口上覆盖注释),那么该项目将在其他人机器上创建大量编译错误.这是因为每个Eclipse工作空间中的默认编译器合规性级别是Java 1.5,而在Java 1.5中,根本不允许使用Override注释.

这与您是在开发闭源还是开源无关,如另一个答案所示.


kos*_*tja 13

与@ nitind的观点相反,没有.您不应在版本控制下放置任何特定于IDE的设置.除了您正在开发IDE功能或插件.

如果您确实拥有强制性的团队范围的IDE设置,那么将它们置于版本控制之下将是一个好主意,但IMO具有强制性的团队范围设置本身并不是一个好主意.

对于所有其他情况,共享IDE设置对于可移植构建是不利的,即使使用相同的IDE,也不利于其他IDE的用户.

编辑:我应该区分,取决于您的项目的目标群体.如果您正在使用eclipse开发团队中的闭源产品,那么将这些首选项保留在版本控制之下是有帮助的,也是一个好主意.如果您正在开发库,封闭或开源或开源项目,我会考虑忽略更合适和礼貌的偏好.

EDIT2:我担心@Bananenweizen会误解我想说的话.

我知道这些设置是eclipse编译器设置.它们仍然是特定于IDE的,因为它们不会对Netbeans或IntelliJ产生任何影响,因为它们不会对命令行中的ant或maven构建产生任何影响.

是的,将这些设置保留在版本控制之外可以在不同的机器上为eclipse带来许多红色波浪线.它不会,如果它是一个具有设定源级别的maven项目,我不确定蚂蚁.

Eclipse本身并不构建项目 - 如果它是eclispe或ant项目,则使用ant构建它们,如果是maven项目,则使用maven构建项目.ant和maven都有源版本的特定设置,不依赖于IDE.

这就是这些设置应该在构建文件中的位置.构建文件应该在源代码管理下.我之前提到的例外情况仍然适用.

  • 提到的实际文件控制项目的代码合规性级别和编译器错误/警告设置,例如是否/如何报告未使用的局部变量、私有成员、未使用的导入类或未处理的空值。这与格式化样式无关,而是与您希望为该项目中工作的任何人强制执行基本的编译器可检测质量的严格程度有关。编辑:此文件特别存在只是因为您选择覆盖项目属性页中的工作区默认值。编辑:除非您使用 Facets。 (2认同)
  • 您的帖子显示了一个误解:这些不是 IDE 特定的设置。它们可能采用 IDE 特定格式,但它们是重要的项目内容,就像众所周知的类路径一样。 (2认同)