在本教學課程中,我們將了解如何使用 sbt 建立 Scala 專案。sbt 是用於編譯、執行和測試任何規模的 Scala 專案的熱門工具。一旦您建立有相依性或多個程式碼檔案的專案,使用 sbt(或 Maven/Gradle)等建置工具就變得至關重要。我們假設您已完成 第一個教學課程。
建立專案
在本節中,我們將向您展示如何在 IntelliJ 中建立專案。但是,如果您熟悉命令列,我們建議您嘗試 在命令列中開始使用 Scala 和 sbt,然後再回到「撰寫 Scala 程式碼」的部分。
- 如果您沒有從命令列建立專案,請開啟 IntelliJ 並選擇「建立新專案」
- 在左側面板中,選擇 Scala,在右側面板中,選擇 sbt
- 按一下下一步
- 將專案命名為「SbtExampleProject」
- 如果您已在命令列中建立專案,請開啟 IntelliJ,選擇匯入專案並開啟專案的
build.sbt
檔案 - 確保JDK 版本為 1.8,sbt 版本至少為 0.13.13
- 選擇使用自動匯入,以便在可用時自動下載相依性
- 選擇完成
了解目錄結構
sbt 建立許多目錄,一旦您開始建置更複雜的專案,這些目錄會很有用。您現在可以忽略它們中的大多數,但以下簡要說明每個目錄的用途
- .idea (IntelliJ files)
- project (plugins and additional settings for sbt)
- src (source files)
- main (application code)
- java (Java source files)
- scala (Scala source files) <-- This is all we need for now
- scala-2.12 (Scala 2.12 specific files)
- test (unit tests)
- target (generated files)
- build.sbt (build definition file for sbt)
撰寫 Scala 程式碼
- 在左側的專案面板中,展開
SbtExampleProject
=>src
=>main
- 右鍵按一下
scala
,然後選擇新增 => 封裝 - 將封裝命名為
example
,然後按一下確定(或僅按 Enter 或 Return 鍵)。 - 右鍵按一下封裝
example
,然後選擇新增 => Scala 類別(如果您看不到此選項,請右鍵按一下SbtExampleProject
,按一下新增架構支援,選擇Scala,然後繼續) - 將類別命名為
Main
,然後將類型變更為物件
。 - 將類別中的程式碼變更為下列內容
@main def run() =
val ages = Seq(42, 75, 29, 64)
println(s"The oldest person is ${ages.max}")
注意:IntelliJ 有自己的 Scala 編譯器實作,有時您的程式碼是正確的,即使 IntelliJ 指出錯誤。您隨時可以在命令列上查看 sbt 是否可以執行您的專案。
執行專案
- 從執行功能表中,選擇編輯組態
- 按一下+ 按鈕,然後選擇sbt 任務。
- 將其命名為
執行程式
。 - 在任務欄位中,輸入
~run
。當您儲存專案中檔案的變更時,~
會導致 sbt 重新建置並重新執行專案。 - 按一下確定。
- 在執行功能表中。按一下執行「執行程式」。
- 在程式碼中,將
75
變更為61
,然後查看主控台中更新的輸出。
新增相依性
稍微轉換一下話題,讓我們來看看如何使用已發布的函式庫為我們的應用程式新增額外功能。
- 開啟
build.sbt
,然後新增下列程式碼列
libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.2"
在此,libraryDependencies
是相依性集合,透過使用 +=
,我們將 scala-parser-combinators 相依性新增到 sbt 在啟動時會去擷取的相依性集合中。現在,在任何 Scala 檔案中,您可以使用一般匯入,從 scala-parser-combinators 匯入類別、物件等。
您可以在 Scala 函式庫索引 Scaladex 上找到更多已發布的函式庫,您也可以從中複製上述相依性資訊,並貼到您的 build.sbt
檔案中。
後續步驟
繼續閱讀入門 IntelliJ 系列中的下一份教學,並了解 使用 ScalaTest 在 IntelliJ 中測試 Scala 程式碼。
或