Scala, sbt, Play Framework を使っていると、プロジェクトによって異なるバージョンが必要になることがある。Ruby には rbenv というすばらしいツールがあるので、同じ仕組みで Scala エコシステム向けのバージョン管理ツールを作ってみた。
作ったもの
rbenv をベースに3つのバージョン管理ツールを開発した:
- scalaenv - Scala のバージョンを切り替える
- sbtenv - sbt のバージョンを切り替える
- playenv - Play Framework のバージョンを切り替える
いずれも GitHub で公開している。
使い方
rbenv と同じコマンド体系で使える。
global でシステム全体のバージョンを設定
$ scalaenv global scala-2.10.3
$ scala -version
Scala code runner version 2.10.3
local でプロジェクトごとのバージョンを設定
.scala-version ファイルが作成される:
$ scalaenv local scala-2.10.2
shell で現在のセッションのバージョンを一時的に変更
$ scalaenv shell scala-2.11.0-M8
--unset オプションで設定を解除できる。
versions で利用可能なバージョンを一覧表示
$ scalaenv versions

ざざっとこんな感じです。 Have fun!
既存の類似ツール
作った後で知ったが、svm, sbt-extras, pvm といった似たようなツールが既にあった。自動ダウンロード機能などを備えているものもある。