typesafe stack で sbt を入れると、build.properties を読み取って sbt の version を勝手に判断してくれる件を調べた

なんだか、(Scalaにある程度詳しい人でも)勘違いがあるみたいですが、sbtは0.11.0のlauncherから0.11.1は起動できますが、0.10のlauncherから0.11.2とかは起動できません。というような、中途半端な互換性があります

そして、自分がsbtみてる限り、がくぞーさんのこのtweet

で言っているような、完全にいいかんじにやってくれる機能が最新のsbt自体に入ったという話はまったく聞いたことない*1ので、そんなことないだろうと思い、調べました。

まず typesafe stack の、どのプラットフォームでも使える汎用版というか全部入っている版のzipをダウンロード。中身こんな感じ↓

bin/sbtがこれ

https://gist.github.com/2355150#file_gistfile1.sh

で、 bin/sbt-launch-lib.bash がこれ

https://gist.github.com/2355150#file_sbt_launch_lib.bash

たしかに、0.7系だろうが、0.11系だろうが気にせず使えるようになってます。
が、AutherにPaul Phillipsって書いてありますし、どうみても、単にこのまえ自分がblogに書いた sbt-extras の古いversionか、独自にforkしたversionが添付されてるだけですね・・・(´・ω・`)

http://d.hatena.ne.jp/xuwei/20120330/1333084615
https://github.com/paulp/sbt-extras

  • windows用のbatchファイルは(ちゃんと見ていないですが)、そんな風にはなってなさそう・・・?(あとで詳しいこと分かったら書くかも・・・)
  • (このblog書いている時点では)homebrewでsbt入れた場合には、勝手に0.7系と0.11系を判断はしてくれないみたいです*2

つまり、りりろじさんが言ってるような

これでリポジトリに sbt-launch.jar いれなくていい世界が実現された…?

は、実現されていない*3ようです、残念でした・・・(´・ω・`)

*1: このblogを最初に書いた時点ではありまんでしたが、blog書いたあとになってそういう機能入りました http://d.hatena.ne.jp/xuwei/20120528/1338168090

*2:ちなみに0.11.2が入る

*3:"全員がwindowsを使用していない" かつ "typesafe stack からsbtを入れている" という前提ならば、ある意味実現されてますが、ちょっとそれは無理が・・・