在 sbt 術(shù)語中 “根目錄”是一個包含項(xiàng)目的目錄,所以如果創(chuàng)建一個 hello 項(xiàng)目將包含 hello/build.sbt 和 hello/hw.scala 在 hello world 項(xiàng)目例子中,其中hello是根目錄
源代碼可以放到項(xiàng)目的根目錄類似于 hello/hw.scala , 但是在真正的項(xiàng)目很少利用這樣的代碼結(jié)構(gòu),這樣會使項(xiàng)目變得混亂, sbt 的項(xiàng)目目錄結(jié)構(gòu)默認(rèn)情況下和 Maven 一樣(所有路勁是基于根目錄的相對路勁):
src/
main/
resources/
<包含在main 的jar包中的文件>
scala/
<scala源代碼>
java/
<java 源代碼>
test/
resources/
<包含在test 的jar包中的文件>
scala/
<scala 源代碼>
java/
<java 源代碼>
除 src/ 目錄以外的目錄將被忽略,包括隱藏的目錄。
你已經(jīng)在項(xiàng)目的根目錄中看到了 build.sbt , 其他的 sbt 定義文件在子目錄 project 中, project 可以包含 .scala 文件,將和 .sbt 定義進(jìn)行合并來完成構(gòu)建定義,詳細(xì)的可以參考 .scala 配置定義
build.sbt
project/
Build.scala
你可能看到在 project/ 目錄中有一個 .sbt 文件,這個文件和根目錄中的 .sbt 不是針對一個項(xiàng)目的定義,稍后會解釋這一點(diǎn)
生成的文件(編譯后的 class文件,jar 包,項(xiàng)目管理文件,緩存文件和文檔)將被寫入到一個target 目錄默認(rèn)
項(xiàng)目的 .gitignore 文件中應(yīng)該包含 target/ , 注意:以 / 結(jié)尾(匹配目錄中所有目錄和文件)并且開頭不包含 / (為了匹配 project/target/)