rbenvがすばらしすぎるので Scala, sbt, PlayFramework 版をつくってみた

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 といった似たようなツールが既にあった。自動ダウンロード機能などを備えているものもある。