$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

project/build.propertiesのsbt.versionでプロジェクトのsbtのバージョンを決められる

Scalaでビルドツールであるsbtを使っていて、そういえばsbtコマンドはグローバルのものを使っているけど、プロジェクトごとにバージョンを変えたかったらどうすればいいんだろうと疑問に思っていた。よくよく調べてみると、そもそもsbtの標準機能としてプロジェクト単位でバージョンを変える機能はもともと組み込まれていた。今日はそのことについてメモ。

sbt Reference Manual — ビルド定義に書いてあるとおり!sbt.version=1.1.1と書けば、グローバルにはsbt 0.13を使っていても、そのプロジェクトでは1.1.1を使ってくれる。

$ echo 'sbt.version=1.1.1' > project/build.properties
$ sbt
Getting org.scala-sbt sbt 1.1.1 ...

グローバルのsbtが、sbt 1.1.1をゲットしてきてそれを使っているというのが面白い。


これまでperlではplenvを使って.perl-versionとか使ってプロジェクト自体の言語のバージョン変えたり、nodeはndenvでとかやっていく世界観だった。けれど、sbt使ってると標準で、sbt自体のバージョンも、scalaのバージョンも決められるのが便利だなーという感想を持った。便利!!