sbaz について

ぐぐった限りでは Ruby でいうところの gem みたいなものらしいです。scala に関係する、ライブラリやツール、ドキュメントを管理(インストール、更新、etc...)してくれます。
sbaz でライブラリをインストールすると、scalac や scala の実行時に、ライブラリにクラスパスが通った状態にしてくれます。そのため、以下のようなメリットがあると思われます。

  • scala で作成したアプリケーションの配布サイズを小さくできる
  • ライブラリの jar ファイルが散在するのを防げる
  • ライブラリのバージョンアップに追随できる*1

scala をアプリケーション実行環境として考えた場合に便利な機能かと。


ただ、ライブラリ管理というと java では maven があります。maven との使いわけが悩ましいです。開発時は maven べったり、配布パッケージは sbaz を意識して作成というのが良いのかも知れませんが、面倒です。mavenプラグインで、以下のようなことをやってくれるのがあれば楽なのですが・・・

  • コンパイル
    • 依存ライブラリが sbaz に存在している場合、sbaz 管理下のライブラリにクラスパスを設定する。必要ならば sbaz にライブラリをインストールする。
  • パッケージ時
    • sbaz に存在しているライブラリはパッケージに含めない
    • sbaz に存在しないライブラリはパッケージに含める


あと、scala インタプリタを使用する人には必須ですね。

*1:場合によっては、アプリケーションが動かなくなるかも?(汗