目录结构

根目录

在 sbt 术语中 “根目录”是一个包含项目的目录,所以如果创建一个 hello 项目将包含 hello/build.sbt 和 hello/hw.scala 在 hello world 项目例子中,其中hello是根目录

源代码目录结构

源代码可以放到项目的根目录类似于 hello/hw.scala , 但是在真正的项目很少利用这样的代码结构,这样会使项目变得混乱, sbt 的项目目录结构默认情况下和 Maven 一样(所有路劲是基于根目录的相对路劲):

1. src/
2. main/
3. resources/
4. <包含在main 的jar包中的文件>
5. scala/
6. <scala源代码>
7. java/
8. <java 源代码>
9. test/
10. resources/
11. <包含在test 的jar包中的文件>
12. scala/
13. <scala 源代码>
14. java/
15. <java 源代码>

除 src/ 目录以外的目录将被忽略,包括隐藏的目录。

sbt 构建定义文件

你已经在项目的根目录中看到了 build.sbt , 其他的 sbt 定义文件在子目录 project 中, project 可以包含 .scala 文件,将和 .sbt 定义进行合并来完成构建定义,详细的可以参考 .scala 配置定义

1. build.sbt
2. project/
3. Build.scala

你可能看到在 project/ 目录中有一个 .sbt 文件,这个文件和根目录中的 .sbt 不是针对一个项目的定义,稍后会解释这一点

构建项目

生成的文件(编译后的 class文件,jar 包,项目管理文件,缓存文件和文档)将被写入到一个target 目录默认

配置项目版本控制

项目的 .gitignore 文件中应该包含 target/ , 注意:以 / 结尾(匹配目录中所有目录和文件)并且开头不包含 / (为了匹配 project/target/)