1. コンソールプロジェクト

コンソールプロジェクト 

説明 

consoleProject タスクは、プロジェクト定義と sbt にアクセスできる Scala インタプリタを起動します。具体的には、インタプリタはこれらのコマンドが既に実行された状態で起動されます。

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