一個(gè)合法的 sbt 項(xiàng)目可以在一個(gè)項(xiàng)目目錄中包含單個(gè)文件。嘗試創(chuàng)建一個(gè)包含hw.scala 文件的目錄hello, 文件中的內(nèi)容如下:
object Hi {
def main(args: Array[String]) = println("Hi!")
}
現(xiàn)在可以進(jìn)入目錄 hello 運(yùn)行 sbt 命令, 在sbt交互模式下運(yùn)行run 命令, 具體的在 Unix或 OS X 中的命令如下:
$ mkdir hello
$ cd hello
$ echo 'object Hi { def main(args: Array[String]) = println("Hi!") }' > hw.scala
$ sbt
...
> run
...
Hi!
在這種情況下 sbt 完全遵循一套構(gòu)建規(guī)則的,sbt 會(huì)自動(dòng)根據(jù)規(guī)則進(jìn)行構(gòu)建,具體的規(guī)則如下:
默認(rèn)情況下 sbt 構(gòu)建的項(xiàng)目用的 scala 版本和 sbt 自身運(yùn)行的scala版本是一樣的,可以通過運(yùn)行 sbt run 命令或 sbt console 進(jìn)入 Scala REPL 模式下運(yùn)行項(xiàng)目, sbt 會(huì)加載依賴的 classpath ,所以可以使用 sbt 直接運(yùn)行測試項(xiàng)目。
許多項(xiàng)目都需要手動(dòng)進(jìn)行配置,最基本的配置一般都是定義在根目錄的 build.sbt 文件中, 例如, 如果項(xiàng)目跟目錄為 hello , 在 hello/build.sbt 中可能為:
name := "hello"
version := "1.0"
scalaVersion := "2.10.3"
需要注意的是每個(gè)配置項(xiàng)之間用空行分割,這個(gè)不僅僅是為了顯示,實(shí)際上 sbt 需要根據(jù)空行來分割多個(gè)配置項(xiàng)的。在配置文件 .sbt 章節(jié)中你可以學(xué)到如何配置 build.sbt
如果你需要將項(xiàng)目打包成 jar 包,需要在 build.sbt 中指定名稱和最新版本號(hào)。
可以強(qiáng)制使用某個(gè) sbt 版本在構(gòu)建項(xiàng)目的時(shí)候,需要在 hello/project/budil.properties 文件中配置:
sbt.version = 0.13.5
強(qiáng)制使用 sbt 的 0.13.5 版本, 雖然sbt 版本間 99% 是兼容的,不過設(shè)置hello/project/budil.properties 指定 sbt 版本可以避免版本之間不兼容導(dǎo)致的一些潛在問題。