私はかなり最近のバージョンのSBTを使用しています(バージョンが何であるかを理解するのは難しいようです)。次のようにシステムプロパティをアプリケーションに渡したいsbt run
:
sbt -Dmyprop=x run
どうすればそれができますか?
私はかなり最近のバージョンのSBTを使用しています(バージョンが何であるかを理解するのは難しいようです)。次のようにシステムプロパティをアプリケーションに渡したいsbt run
:
sbt -Dmyprop=x run
どうすればそれができますか?
SBT のランナーは通常、新しいプロセスを作成しないため、渡される引数を設定する場合は、これを実行するように指示する必要もあります。ビルド設定に次のようなものを追加できます。
fork := true
javaOptions := Seq("-Dmx=1024M")
分岐プロセスの詳細については、SBT のドキュメントを参照してください。
これをに追加する最良の方法を見つけましたbuild.sbt
:
// important to use ~= so that any other initializations aren't dropped
// the _ discards the meaningless () value previously assigned to 'initialize'
initialize ~= { _ =>
System.setProperty( "config.file", "debug.conf" )
}
関連:ロードされるタイプセーフ構成を変更するためにこれを行う場合(私のユースケース)、デフォルト構成も手動で含める必要があります。このために、タイプセーフ構成の提案include "application"
は十分ではありませんでしたが、include classpath("application.conf")
機能しました。まったく同じ理由でシステムプロパティをオーバーライドしたい人もいるかもしれないので、言及することを考えてください。
出典: sbt メーリング リストでの議論