sbtをScala2.11で単なるライブラリとして使う

Scala祭の興奮冷めやらぬ中?なのか、べつにそうでもないのかよくわかりませんが、引き続きこういった地味なお役立ち情報を書いていきたい所存です。


さて、sbt 0.13.6 でましたね。
https://groups.google.com/d/topic/sbt-dev/BBKDh2h56ww/discussion
ところで sbt 0.13.6 から、Scala2.11でもビルドされてpublishされてるらしいです。(正確には0.13.6のマイルストーンの頃からですが)
http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-sbt/io_2.11/
しかし、おそらくsbt自体がScala 2.11への移行をやりやすくするため?であって、べつにユーザーがsbtでビルドする際のScalaのversionを選べるようになったわけではありません。相変わらず、sbt 0.13.x では、Scala 2.10 です。はやく Scala 2.11 になって欲しいですね。

さてそれはおいておき、本題の説明ですが、つまりたとえば以下のようにすると、Scala 2.11 でも使えます。*1

resolvers += Resolver.url("typesafe", url("http://repo.typesafe.com/typesafe/ivy-releases/"))(Resolver.ivyStylePatterns)

libraryDependencies += "org.scala-sbt" %% "io" % "0.13.9"

scalaVersion := "2.11.7"

sbtは、IOのあたり
https://github.com/sbt/sbt/blob/v0.13.9/util/io/src/main/scala/sbt/IO.scala
とか、いくつかのローンパターンとか
https://github.com/sbt/sbt/blob/v0.13.9/util/io/src/main/scala/sbt/Using.scala
その他にもいくつか、ビルドツール関係なくライブラリとしてちょっと便利に使えるところがあるので、こういう使い方もありだとおもいます。

*1:もちろん、sbt 0.13 系は Scala 2.10 なので、Scala 2.10 でも使えます。今回やっと Scala 2.11 でも使えるようになった、のでそれを伝えるために書いただけです