ライブラリや自分のコードの動きを確認したいときに"sbt console"が便利
自分のプロジェクトで使っているライブラリや、書いているコードをちょっとだけテストしたい場合などに、sbt console
を利用する。
本稿では、sbt.version = 0.13.5
を想定している。
今回は、Scalaの非同期HTTP通信用ライブラリのDispatchを例に、
このライブラリをsbt console
から利用する方法をまとめた。
まずは、build.sbt
の依存ライブラリにDispatchを追加しておく。
// build.sbt name := "sbt-sample" version := "1.0" scalaVersion := "2.11.6" libraryDependencies += "net.databinder.dispatch" %% "dispatch-core" % "0.11.2"
build.sbt
を用意したら、プロジェクトのディレクトリに移動して次のコマンドを実行。
$ sbt console
すると、ライブラリの依存解決と、src以下のコンパイルが始まり、終わるとScalaREPL(対話式実行環境)が立ち上がる。
これは通常のScalaREPL(対話式シェル)と同じように見えるが、build.sbt
に記述しているライブラリ及び、プロジェクト内のパッケージを利用できる。
まずは、Dispatchのパッケージをインポートしてみる。
scala> import dispatch._, Defaults._ import dispatch._ import Defaults._
このように、インポートが実行される。 すると次のように、REPLでDispatchを利用したプログラムが実行できる。
scala> val svc = url("http://api.hostip.info/country.php") svc: dispatch.Req = Req(<function1>,Properties(NoBody)) scala> val country = Http(svc OK as.String) country: dispatch.Future[String] = scala.concurrent.impl.Promise$DefaultPromise@33304f78 scala> country.foreach(println) XX
同じように、自身で定義したObject
や、Class
も実行できるので、簡易な動作確認には役に立つ機能である。