构建布局
sbt 使用文件放置约定,便于快速上手新的 sbt 构建:
.
├── build.sbt
├── project/
│ ├── build.properties
│ ├── Dependencies.scala
│ └── plugins.sbt
├── src/
│ ├── main/
│ │ ├── java/
│ │ ├── resources/
│ │ ├── scala/
│ │ └── scala-2.13/
│ └── test/
│ ├── java/
│ ├── resources/
│ ├── scala/
│ └── scala-2.13/
├── subproject-core/
│ └── src/
│ ├── main/
│ └── test/
├─── subproject-util/
│ └── src/
│ ├── main/
│ └── test/
└── target/
- 本地根目录
.是您构建的起点。 - 在 sbt 的术语中,base directory(基目录)是包含子项目的目录。在上面的示例中,
.、subproject-core和subproject-util都是基目录。 - 构建定义在本地根目录的
build.sbt(实际上是任何名为*.sbt的文件)中描述。 - sbt 版本在
project/build.properties中跟踪。 - 生成的文件(编译后的类、打包的 jar、托管文件、缓存和文档)默认会写入
target目录。
构建支持文件
除了 build.sbt 之外,project 目录还可以包含定义辅助对象和一次性插件的 .scala 文件。
.
├── build.sbt
├── project/
│ ├── build.properties
│ ├── Dependencies.scala
│ └── plugins.sbt
....
您可能会在 project/ 内看到 .sbt 文件,通常用于声明插件。请参阅 插件基础。
源代码
sbt 默认使用与 Maven 相同的目录结构存放源文件(所有路径均相对于基目录):
....
├── src/
│ ├── main/
│ │ ├── java/ <main Java sources>
│ │ ├── resources/ <files to include in main JAR>
│ │ ├── scala/ <main Scala sources>
│ │ └── scala-2.13/ <main Scala 2.13 specific sources>
│ └── test/
│ ├── java/ <test Java sources>
│ ├── resources/ <files to include in test JAR>
│ ├── scala/ <test Scala sources>
│ └── scala-2.13/ <test Scala 2.13 specific sources>
....
src/ 中的其他目录将被忽略。此外,所有隐藏目录也将被忽略。
源代码可以放在项目的基目录中,如 hello/app.scala,这对于小项目可能可以接受,但对于常规项目,人们倾向于将项目放在 src/main/ 目录中以保持整洁。
配置版本控制
您的 .gitignore(或其他版本控制系统的等效文件)应包含:
target/