在 sbt 的术语中,“基准目录”是指包含项目的目录。因此,如果您创建了一个包含 /tmp/foo-build/build.sbt
的项目 hello
,如sbt 实例所示,/tmp/foo-build
就是您的基准目录。
默认情况下,sbt 使用与Maven 相同的目录结构来存放源文件(所有路径相对于基准目录)。
src/
main/
resources/
<files to include in main jar here>
scala/
<main Scala sources>
scala-2.12/
<main Scala 2.12 specific sources>
java/
<main Java sources>
test/
resources
<files to include in test jar here>
scala/
<test Scala sources>
scala-2.12/
<test Scala 2.12 specific sources>
java/
<test Java sources>
src/
中的其他目录将被忽略。此外,所有隐藏目录也将被忽略。
源代码可以放在项目的基准目录中,例如 hello/app.scala
,对于小型项目来说可能没问题,但对于普通项目来说,人们倾向于将项目放在 src/main/
目录中,以保持整洁。您可以在基准目录中放置 *.scala
源代码这一事实可能看起来像是一个奇怪的技巧,但这一事实会在之后变得相关。
构建定义在项目基准目录中的 build.sbt
(实际上是名为 *.sbt
的任何文件)中描述。
build.sbt
除了 build.sbt
之外,project
目录还可以包含 .scala
文件,这些文件定义辅助对象和一次性插件。有关更多信息,请参阅组织构建.
build.sbt
project/
Dependencies.scala
您可能会在 project/
中看到 .sbt
文件,但它们与项目基准目录中的 .sbt
文件不同。解释这一点将在之后进行,因为您首先需要一些背景信息。
默认情况下,生成的文件(编译后的类、打包的 jar 文件、管理文件、缓存和文档)将写入 target
目录。
您的 .gitignore
(或其他版本控制系统的等效文件)应包含以下内容:
target/
请注意,这故意包含一个尾部的 /
(仅匹配目录)并且故意没有前导 /
(除了匹配 project/target/
之外,还要匹配 target/
)。