【发布时间】:2012-08-09 13:29:06
【问题描述】:
我的本地机器上有一个 grails 应用程序,并且我在 XP-DEV 中创建了一个存储库。我在项目根目录中有文件夹 .groovy 和 .settings。我需要将这些文件提交到版本控制中吗?我问这个问题是因为我不知道这些文件夹的用途。
【问题讨论】:
标签: eclipse svn grails groovy grails-2.0
我的本地机器上有一个 grails 应用程序,并且我在 XP-DEV 中创建了一个存储库。我在项目根目录中有文件夹 .groovy 和 .settings。我需要将这些文件提交到版本控制中吗?我问这个问题是因为我不知道这些文件夹的用途。
【问题讨论】:
标签: eclipse svn grails groovy grails-2.0
更新
5 年之后的开发经验,我想我需要稍微回到我原来的观点。我仍然认为,一般来说,这些文件不应该包含在源代码管理中。
但是,有些设置可以方便地在开发人员之间共享。问题是很难知道哪些设置可以共享,哪些不可以共享。例如,任何包含绝对路径的设置都不应共享;但是您如何知道任何给定工具的配置(例如 Eclipse、IntelliJ 等)是否包含绝对路径?
如果你使用git进行版本控制,github发布了很多.gitignore各种工具的模板github/gitignore。如果您想尝试共享设置,我建议您使用这些模板之一。
如果这些模板不适合您,我坚持我最初的建议,即不要将这些设置签入版本控制并允许它们自动生成。然后,如果有要共享的重要设置(例如代码样式模板等),请提供有关如何将该设置应用于所有预期开发环境的说明。
原答案:
.settings 通常由您使用的任何 IDE 创建(我知道 Eclipse 使用此约定)并包含与 IDE 相关的项目特定设置。
.groovy 包含 groovy 的用户特定设置。例如,我知道 Grape 会将依赖项下载到 .groovy 目录中。
我的意见是,不,不要提交这些目录。如果其他人签出您的项目,他们自己的这些目录的个人副本将自动生成。
【讨论】:
我不同意@FGreg 的回答。 .settings 文件夹包含项目特定的设置。这包括自定义编译器设置、错误和警告级别、格式化首选项、保存操作等。通常,在开发人员之间共享这些首选项是个好主意。如果这些设置不共享,那么您可能会遇到格式不一致和编译器问题。
一般来说,如果您想为任何团队提供一致的开发环境,您需要将设置文件夹包含到版本控制中。
Groovy-Eclipse 中的 .groovy 文件夹用于存放特定于项目的 DSL 信息和推理建议。一般来说,如果您有特定于项目的推理信息,您会希望与同一项目中的其他人共享这些信息。
在我们的团队中,我们清楚地定义了每个项目将使用的所有设置,提交 .settings 文件夹,我们保证每个开发人员看到相同的设置。
【讨论】:
在我看来,提交 IDE 项目文件是个坏主意。如果你有特定的配置要做,你应该配置你的 maven、gradle、ant 或任何东西来生成正确的配置。
有一个我见过的问题列表
如果您选择提交这些文件,请记住,您将不得不做一些额外的手动工作以确保提交正确的文件。 但是如果你正确配置你的构建工具,你只会做一次工作。 ;)
【讨论】: