xsbt-start-script-plugin は main クラスの起動スクリプトを作ってくれる sbt プラグインです。 sbt run を使っても実行することができますが、main クラスが複数あるときにキー入力が必要なのが困るんですよね。
まず設定です。(sbt 0.11.2 で試しました)
project/plugins.sbt に下記を追加します。(sbt 0.10.x は別の方法なので注意)
resolvers += Classpaths.typesafeResolver
addSbtPlugin("com.typesafe.startscript" % "xsbt-start-script-plugin" % "0.5.0")
build.sbt に下記を追加します。
import com.typesafe.startscript.StartScriptPlugin
seq(StartScriptPlugin.startScriptForClassesSettings: _*)
これで準備完了。つづいて sbt で
> start-script
とすれば target/start が生成されます。 こんなのがあれば
package com.example
object Inu extends App {
println("inu")
}
object Neko extends App {
println("neko")
}
こうやって実行できます。
% ./target/start com.example.Inu
inu
% ./target/start com.example.Neko
neko