LoginSignup
7
7

More than 5 years have passed since last update.

sbt-extrasでsbtを複数バージョン運用する

Posted at

プロジェクトによってビルドしているsbtのバージョンが違ったりすることもあるので、sbtを複数バージョン同居させたいことないでしょうか?
sbt-extrasを使うと簡単にできます。

paulp/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等に記述します。

bash|.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的な。

7
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7