使用git的IntelliJ上的Scala:.gitignore应该是什么样子?

Mar*_*pel 6 git scala intellij-idea gitignore sbt

注意:此问题特定于Scala项目。我希望Scala可以在IntelliJ中进行编译并成功运行,而无需进行任何事先配置。

我已经使用IntelliJ IDEA创建了一个包含Scala示例的测试项目,并将其发布到GitHub。

项目结构如下所示:

项目结构

我目前.gitignore看起来像这样:

*.class
*.log
target/
.idea/
project/
Run Code Online (Sandbox Code Playgroud)

这将导致一个如下所示的存储库:

GitHub存储库结构

现在,我正在尝试做的是:

拥有Scala示例代码很酷,但是我也想将此项目用作带有IntelliJ的Scala项目的模板。

因此,如何最好地更改我的.gitignore文件,以便每当克隆项目时,都可以使用IntelliJ打开它并使一切正常工作?当然,这不包括目标目录,因此每当我克隆项目时都需要重新编译该项目。

Mik*_*len 5

假设您使用SBTIntelliJ 中构建您的项目,您应该过滤掉以下目录:

project/target/
target/
Run Code Online (Sandbox Code Playgroud)

(实际上,只需添加target/过滤器即可。)

这些目录包含从您的源生成的SBT输出,不应置于版本控制之下。

如果在您的项目上工作的每个人都在处理代码时使用IntelliJ,那么您应该添加所有./.idea目录,但以下例外:

.idea/.name
.idea/libraries/
.idea/modules/
.idea/modules.xml
.idea/scala_compiler.xml
.idea/tasks.xml
.idea/workspace.xml
.idea_modules/
Run Code Online (Sandbox Code Playgroud)

(您可能还想考虑添加.idea/sbt.xml到此列表中。它有一些来自SBT 的冗余信息,但也有一些IntelliJ SBT配置设置。由您决定...)

这些文件和目录要么包含IntelliJSBT收集的信息(因此是冗余的),要么包含特定于机器和/或用户的信息,如果在不同的机器上或由不同的用户检出,这些信息会产生问题。

如果SBT是主要的构建工具,并且人们可以使用他们喜欢的任何IDE,那么最好忽略整个.idea目录。