在 sbt 的術語中,「基礎目錄」是包含專案的目錄。因此,如果您建立了一個名為 hello
的專案,其中包含 /tmp/foo-build/build.sbt
,如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/
請注意,這刻意有一個尾隨的 /
(僅比對目錄),並且刻意沒有前導的 /
(除了比對普通的 target/
之外,還比對 project/target/
)。