在根目錄中運(yùn)行 sbt 命令不帶任何參數(shù)將進(jìn)入交互模式
$ sbt
交互模式有一個(gè)命令輸入功能(可以用 Tab 補(bǔ)全和歷史命令), 例如,當(dāng)輸入 compile 時(shí):
> compile
如果再次編譯只需按 向上鍵 + 回車鍵
如果運(yùn)行該項(xiàng)目輸入 run
如果退出交互模式輸入 exit 或用快捷鍵 Ctrl+D(Unix) 或 Ctrl+Z(Windows)
你也可以在批量腳本模式下運(yùn)行 sbt, 指定一個(gè)用空格分割的一系列命令作為參數(shù). 對(duì)于 sbt 命令本身也可以指定對(duì)應(yīng)的參數(shù),將命令和命令參數(shù)用雙引號(hào)括起來,其中一個(gè)參數(shù)為命令,其余的為命令參數(shù),例如:
$ sbt clean compile "testOnly TestA TestB"
在這個(gè)例子中,testOnly有兩個(gè)參數(shù)分別是 TestA 和 TestB. 這個(gè)命令將按照 clean, compile, testOnly 順序來執(zhí)行.
為了提供 編輯-編譯-測(cè)試 整個(gè)周期的效率,可以使用 sbt 的自動(dòng)觸發(fā)編譯和運(yùn)行過程當(dāng)保存源代碼文件的時(shí)候。使一個(gè)或多個(gè)源代碼文件修改后可以自動(dòng)指定對(duì)應(yīng)的命令,只需在對(duì)應(yīng)命令前加 ~ 前綴. 例如,在交互模式下:
> ~ compile
按回車鍵定制監(jiān)視文件的改變
clean
刪除所有構(gòu)建生成的文件(在target目錄中)
compile
編譯項(xiàng)目源代碼(編譯 src/main/scala 和 src/main/java 目錄下的源代碼)
test
編譯并運(yùn)行所有的測(cè)試用例
console
啟動(dòng)一個(gè) Scala 語言交互模式, sbt 在啟動(dòng)的時(shí)候會(huì)指定依賴的所有classpath, 返回 sbt 可以用 :quit 、 Ctrl+D(Unix) 和 Ctrl+Z(Windows)
run <arguments>*
運(yùn)行項(xiàng)目在虛擬機(jī)中
package
創(chuàng)建一個(gè) jar 包其中包含 src/main/resources 和編譯 src/main/scala 或 src/main/java 目錄的 class 文件
help <command>
顯示指定命令的幫助信息,如果沒有指定命令將顯示所有的命名的摘要信息。
reload
重新加載配置文件(build.sbt, project/.scala 和 project/.sbt 文件), 當(dāng)修改配置文件的時(shí)候需要執(zhí)行
在交互模式下 sbt 支持 Tab 補(bǔ)全功能,當(dāng)按一次 Tab 鍵是 sbt 會(huì)顯示所有可能匹配的子集命令,當(dāng)按多次 Tab 后將顯示多個(gè)可能匹配的命令進(jìn)行選擇的提示,和 Unix tab 補(bǔ)全規(guī)則基本一致
在交互模式下可以 sbt 會(huì)記錄歷史命令,甚至是退出sbt 后重啟歷史命令還會(huì)存在, 利用歷史命令簡單的方法是按 "向上鍵 + 回車鍵" 調(diào)用上一次執(zhí)行的命令,以下是所有執(zhí)行的歷史命令調(diào)用方法:
!
顯示歷史命令的幫助信息
!!
再次執(zhí)行上一個(gè)命令
!:
顯示所有的歷史命令
!:n
顯示最后的 n 個(gè)歷史命令
!n
執(zhí)行index 為 n的命令,index為執(zhí)行 !:命令顯示的index
!-n
執(zhí)行第 n 個(gè)命令的前一個(gè)命令
!string
執(zhí)行以 'string' 開頭的最近的命令
!?string
執(zhí)行包含 'string' 字符串的命令