consoleProject
任務會啟動 Scala 直譯器,它可以存取您的專案定義和 sbt
。具體來說,直譯器會啟動並已執行這些命令
import sbt._
import Keys._
import <your-project-definition>._
import currentState._
import extracted._
import cpHelpers._
例如,使用 sbt 的程序庫執行外部程序(將包含在 Scala 2.9 的標準函式庫中)
> "tar -zcvf project-src.tar.gz src" !
> "find project -name *.jar" !
> "cat build.sbt" #| "grep version" #> new File("sbt-version") !
> "grep -r null src" #|| "echo null-free" !
> uri("http://databinder.net/dispatch/About").toURL #> file("About.html") !
consoleProject
可以用於建立和修改您的建置,就像 Scala 直譯器通常用於探索程式碼撰寫一樣。請注意,這會讓您直接存取您的建置。例如,請思考您傳遞給 IO.delete
的內容。
若要取得特定設定,請使用以下格式
> val value = (<scope> / <key>).eval
> IO.delete( (Compile / classesDirectory).eval )
顯示目前的編譯選項
> (Compile / scalacOptions).eval foreach println
顯示額外設定的儲存庫。
> resolvers.eval foreach println
若要評估任務(及其依賴項),請使用相同的格式
> val value = (<scope> / <key>).eval
顯示所有儲存庫,包括預設值。
> fullResolvers.eval foreach println
顯示用於編譯和測試的類別路徑
> (Compile / fullClasspath).eval.files foreach println
> (Test / fullClasspath).eval.files foreach println
目前的 建置狀態 以 currentState
的形式提供。 currentState
的內容預設會匯入,且可直接使用,無需限定詞。
顯示建置中待執行的剩餘命令(如果您像 ; consoleProject ; clean ; compile
這樣叫用 consoleProject
,則會更有趣)
> remainingCommands
顯示目前已註冊命令的數量
> definedCommands.size