1. 目錄結構

目錄結構 

此頁面假設您已安裝 sbt 並看過sbt 範例

基礎目錄 

在 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 原始碼放置在基礎目錄中,這件事乍看之下可能有點奇怪,但此事實在稍後會變得相關。

sbt 建置定義檔案 

建置定義在專案基礎目錄中的 build.sbt (實際上是任何名為 *.sbt 的檔案) 中描述。

build.sbt

建置支援檔案 

除了 build.sbt 之外,project 目錄還可以包含定義輔助物件和一次性外掛的 .scala 檔案。請參閱組織建置以瞭解更多資訊。

build.sbt
project/
  Dependencies.scala

您可能會在 project/ 內看到 .sbt 檔案,但它們與專案基礎目錄中的 .sbt 檔案並不相同。由於您需要一些背景資訊,因此稍後會在稍後說明這一點。

建置產品 

產生的檔案 (已編譯的類別、已封裝的 jar 檔案、受管理的檔案、快取和文件) 預設會寫入 target 目錄。

設定版本控制 

您的 .gitignore (或其他版本控制系統的對應檔案) 應該包含

target/

請注意,這刻意有一個尾隨的 / (僅比對目錄),並且刻意沒有前導的 / (除了比對普通的 target/ 之外,還比對 project/target/)。