プロジェクトによってビルドしているsbtのバージョンが違ったりすることもあるので、sbtを複数バージョン同居させたいことないでしょうか?
sbt-extrasを使うと簡単にできます。
前提条件
- JDKがインストールされていればOK。Scalaが実行できなくても問題無し。
セットアップ
スクリプトのダウンロード
任意の場所にsbt-extrasのsbtスクリプトをダウンロードし、実行権限を付与します。ここでは、本家の説明通り~/bin/sbtに保存します。
$ curl -s https://raw.github.com/paulp/sbt-extras/master/sbt > ~/bin/sbt && chmod 0755 ~/bin/sbt
環境変数にPATHにスクリプトのディレクトリを設定
このスクリプトを実行できるように、~/binを環境変数PATHに設定しておきます。.bash_profile等に記述します。
export PATH=$PATH:~/bin
指定のバージョンのsbtをインストールする
このスクリプトを実行してsbt本体をインストールします。
今回はScala2.10系でsbt0.13.0をインストールしてみることにします。以下のコマンドを実行すると、指定のバージョンのsbt-launcher.jarがダウンロードされます。
$ sbt -v -210 -sbt-version 0.13.0 -sbt-create
No extra sbt options have been defined
Detected sbt version 0.13.0
(省略)
-vはScalaのバージョン、-sbt-versionオプションでsbtのバージョンを指定できます。公式に記述されている-vオプションとバージョンの対応は以下のようになってます。
-v | Scalaのバージョン |
---|---|
-28 | 2.8.2 |
-29 | 2.9.3 |
-210 | 2.10.3 (or latest 2.10.x release or RC) |
-211 | 2.11.0-M4 (or latest milestone) |
-sbt-versionオプションは存在するsbtのバージョンをそのまま指定すれば良いです。指定しない場合、現在は0.13.1がインストールされるようですが、デフォルトバージョンはおそらくsbtのリリース状況によって変わってくるのでしょう。
ダウンロードしたsbtを実行する
sbt-extrasによって~/.sbt/launchers/0.13.0/sbt-launch.jarにsbt本体のJarがダウンロードされているはずです。これをjavaコマンドを使って実行します。
-jarでjarのパスを指定した後は、aboutのようなsbtの固有のコマンドを指定します。
$ java -jar ~/.sbt/launchers/0.13.0/sbt-launch.jar about
まとめ
sbt-extrasを素の状態で使ってみましたが、スクリプト書けばもっと楽な運用ができそうですね。nodebrew的な。