注意:此问题特定于Scala项目。我想让Scala编译并从IntelliJ内部成功运行,无需任何先前的配置。
我使用IntelliJ IDEA创建了一个包含Scala示例的测试项目,并将其发布到GitHub。
项目结构如下所示:
我目前的.gitignore
看起来像这样:
*.class
*.log
target/
.idea/
project/
这导致存储库看起来像这样:
现在我要做的是:
使用Scala示例代码很酷,但我也希望将此项目用作使用IntelliJ的Scala项目的模板。
那么,我应该如何最好地更改我的.gitignore
文件,所以每当我克隆项目时,我都可以用IntelliJ打开它并让一切工作正常?当然,这会排除目标目录,所以每当我克隆它时我都需要重新编译项目。
假设您使用SBT在IntelliJ中构建项目,您应该过滤掉以下目录:
project/target/
target/
(实际上,只需添加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/
(您可能还需要考虑将.idea/sbt.xml
添加到此列表中。它有来自SBT的一些冗余信息,但也有一些IntelliJ SBT配置设置。由您决定...)
这些文件和目录包含IntelliJ从SBT收集的信息(因此是冗余的)或包含机器和/或用户特定的信息,如果在不同的机器上或由不同的用户签出,将产生问题。
如果SBT是主要的构建工具,并且人们可以使用他们喜欢的任何IDE,那么忽略整个.idea
目录可能会更好。
您必须提交/project
目录,因为它包含build.properties
和plugins.sbt
等重要信息。
你应该忽略/project/target
你也应该忽略*.iml
我建议使用网站https://gitignore.io,它会根据你的环境为你建立一个.gitignore
文件。
这里忽略了你不应该为基于Scala / SBT / Windows / Vim的项目提交的所有内容: