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
留言
張貼留言