【问题标题】:Why does eclipse create a .settings directory?为什么eclipse会创建一个.settings目录?
【发布时间】:2009-10-11 15:54:20
【问题描述】:

我注意到 eclipse 最近创建了一个 .settings 目录,里面有 1 个文件,我想知道是否应该将它添加到版本控制中? SVN?

还有,这是新的吗?我已经使用 eclipse 有一段时间了,但从未注意到它。

目录中的文件内容是这样的:

#Sun Oct 11 14:57:03 CEST 2009
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6

这些设置是否应该是工作区范围的而不是特定于项目的?

【问题讨论】:

  • 好问题。我认为 eclipse 选择它的名字有点傻。如果我们的项目中已经有一个目录,会发生什么?大多数应用程序使用自己的名称;例如.svn.git.hg我不知道为什么不.eclipse
  • @JW。我猜 Eclipse 选择了名称 .settings 而不是 .eclipse,因为他们希望其他 IDE 遵循这种做法。

标签: java eclipse


【解决方案1】:

此文件记录项目特定设置与工作区首选项。

我注意到这个文件通常是在您将常规 Java 项目转换为 Java EE 项目时创建的。

我会签入​​此文件的唯一情况是项目的编译器/警告设置与默认工作区设置不同。

当某些遗留项目无法使用最新最好的 java 编译器编译时,或者当第 3 方生成的源代码产生大量良性警告但污染您的 Problems 视图时,可能会出现这种情况。

如果你要使用项目特定的设置,那么一定要签入这个文件。否则删除它。

【讨论】:

  • 如果您的版本控制系统支持使文件可写(Perforce 中的文件类型),那么您可能想要这样做。否则,当错误日志窗口打开时,我看到(我们有一个名为 Common 的项目):无法写入只读文件“/Common/.settings/language.settings.xml”。
【解决方案2】:

.settings 文件夹被各种插件用来设置持久的“属性”,而不是“首选项”,以指定应保留的项目特定设置。

这通常是您最肯定想要签入 svn/cvs/git 等的目录,因为它将确保所有将该项目签出到 eclipse 中的用户都使用正确的项目特定设置。

在我们的例子中,我们使用它来提供 5 的最低编译器版本,因为一些开发人员使用的是 Java 5 而不是 6 等,但我们希望为我们的服务器编译为 5。我们还使用它来强制执行一些编码标准和自动格式化程序,从而使版本差异更易于阅读。

在您的具体情况下,您通过右键单击项目并选择属性,在“属性->Java 编译器”下选择了“启用项目特定设置”。

【讨论】:

  • 这个答案比选择的一个恕我直言。
  • 如果您的版本控制系统支持使文件可写(Perforce 中的文件类型),那么您可能想要这样做。否则,当错误日志窗口打开时,我看到(我们有一个名为 Common 的项目):无法写入只读文件“/Common/.settings/language.settings.xml”。
【解决方案3】:

这些是 Eclipse 的项目特定设置。您不需要将它们包含在 svn 中,因为每个用户 eclipse 将在他们签出项目时创建它们,或者他们甚至可能使用另一个 IDE 而不需要它们。如果您是唯一使用该项目的人,那么是否包含它们也没关系。

【讨论】:

  • 我个人不同意这一点。例如,如果您有仅支持 Java 5(或 1.4 等)的策略,那么您希望开发人员覆盖这些设置。您希望签入文件并能够跟踪对它们的更改。
  • 如果有人真的将它们检查到版本控制中,如果使用像 clearcase 这样的 vcs 来要求文件应该是只读的,就会产生痛苦。 Eclipse 真的不喜欢 .settings 是只读的。只是一个警告......
  • 我猜 Eclipse 之所以选择名称 .settings 而不是 .eclipse,是因为他们希望其他 IDE 遵循这种做法。
  • 要跟进@eis,如果您的版本控制系统支持使文件可写(Perforce 中的文件类型),那么您可能想要这样做。否则,当错误日志窗口打开时,我看到(我们有一个名为 Common 的项目):无法写入只读文件“/Common/.settings/language.settings.xml”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
相关资源
最近更新 更多