Sbt (0) Hello world

sbt 是一個 scala, java 的 build tool。 我有一台 i3 的電腦一開 IntelliJ 就快掛了,雖然 IntelliJ 也有 sbt project,但我還是要回歸到 vscode。

1. Hello world

sbt 指令會檢查路徑裡的 build.sbt 檔案並依照裡面的內容工作,類似 make 指令會檢查 makefile 一樣。

建立一個測試資料夾,在資料夾內新增 build.sbt。目前 build.sbt 的內容為空。

$ mkdir SbtTest
$ cd SbtTest
$ touch build.sbt

等一下要寫 scala 的 source code,習慣上把 source code 放在 src/main/scala 中。 example 是我們的 package 名稱。

$ mkdir -p src/main/scala/example

準備要編寫 source code 了。

$ cd src/main/scala/example
$ vim Hello.scala

source code 內容如下:

package example

object Hello extends App {
  println("Hello world")
}

package example 對應 src/main/scala 的 example 資料夾。 object Hello extends App 是 scala 程式的進入點,Hello 繼承 App 所以被視為是程式的進入點。

object 類似 java 的 static class (如果不懂也沒關係) 是一個 singleton。

在 SbtTest 執行 sbt 指令,sbt 是一個 interactive 的 tool,所以可以互動式的編譯和執行:

$ sbt
sbt:sbttest> compile
sbt:sbttest> run

compile 是編譯,run 是執行。sbt 很聰明會找到編譯目標和要執行的程式 (雖然我們有跟它套招,實際上都是路徑對應)。


2. "~" 等待並自動執行:

在 sbt 裡我們可以將 compile 改寫成 ~compile,意思是等待原始碼的改動,一有改動就執行編譯。


3. Reactivity:

另一種編譯執行的方法類似傳統的 make,我們可以透過指令選項進行編譯與執行。

$ sbt compile
$ sbt run

留言

熱門文章