我应该将kotlinc.xml添加到版本控制的忽略文件中吗?

10

在IntelliJ IDEA(2017.1.2)中设置Java项目的过程中,一个名为kotlinc.xml的文件出现在.idea/目录中。我没有使用Kotlin,但是该文件存在并包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="KotlinCommonCompilerArguments">
    <option name="languageVersion" value="1.1" />
    <option name="apiVersion" value="1.1" />
  </component>
</project>

这似乎是一些通用的配置,但我可以想象一些特定于项目的(而不仅仅是我的本地IDEA的)Kotlin配置存储在那里。因此,一般情况下,在分享受版本控制(例如Git)的项目时,可以忽略此文件,即不提交它并将其发布到在线环境中?还是应该忽略它?


这个导致在不使用 Kotlin 的项目中生成该文件的错误已经在 Kotlin 1.1.2 中得到修复,该版本已经捆绑在 IntelliJ IDEA 2017.1.3 中。 - yole
2个回答

5
您不应将此文件添加到您的版本控制忽略文件中。我们已经将此文件检入,因为它包含相关的JVM目标信息。这符合Jetbrains官方共享建议,其中指出:

以下是您需要共享的内容:

  • 所有位于.idea目录下的文件[...]
kotlinc.xml未被列为此规则的例外。
此外,来自githubgitignore.io的gitignore模板均未列出此文件,因此应将其检入。

3

我从未提交过.idea目录中的任何内容。

如果您使用现代构建系统,如GradleMaven,则无需提交此类元文件,因为像Intellij IDEA或Eclipse这样的IDE可以成功从依赖项/属性中提取此类元数据。

大多数情况下,IntelliJ会要求您覆盖.idea文件夹中的现有属性。

在导入Gradle / Maven项目后,IntelliJ将创建自己的.idea目录,并设置配置和属性。

我喜欢尽可能保持我的项目干净整洁(源代码、构建(gradle、maven)文件、CI、README)。幸运的是,Java允许我们制作便携式源码/项目,所以我们不应浪费这个机会 :)


1
同意,你不应该将可以使用开发工具生成的内容提交到版本控制中,特别是当这些文件永远不会成为最终产品的一部分时。如果你发现新用户拉取你的代码库时遇到了问题,那么可能是你错过了一些文件或需要重新评估一些你决定不进行版本控制的文件,但除此之外,不要将其纳入版本控制。 - Kenneth Salomon
1
在我看来,项目不应包含IDE依赖项,除非有某种原因需要这个依赖项。 - Dioxin
18
这不应该成为被接受的答案。它没有告诉我们这个文件存在的原因,它是如何工作的,以及它是否应该与源代码一起进行版本控制。相反,它提供了一个关于一组具有非常广泛存在原因的文件的最佳实践的观点。 - methodsignature
4
这不应该成为被接受的答案。在某些开发情况下,您绝对希望项目和IDE文件存在。如果您的整个开发团队已经确定了一个特定的工具集,并且您想要共享特定的项目特定文件,为什么不呢?显然,您不希望存储用户特定的配置文件,但是项目范围的文件是可以的。 - Howard Swope
1
Jetbrains文档中的引用:“我们建议通过VCS共享.idea/codeStyles目录。” https://blog.jetbrains.com/kotlin/2018/09/kotlin-1-3-rc-is-here-migrate-your-coroutines/ - G00fY
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接