1. 主控台專案

主控台專案 

描述 

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