19

私はかなり最近のバージョンのSBTを使用しています(バージョンが何であるかを理解するのは難しいようです)。次のようにシステムプロパティをアプリケーションに渡したいsbt run

sbt -Dmyprop=x run

どうすればそれができますか?

4

5 に答える 5

16

SBT のランナーは通常、新しいプロセスを作成しないため、渡される引数を設定する場合は、これを実行するように指示する必要もあります。ビルド設定に次のようなものを追加できます。

fork := true

javaOptions := Seq("-Dmx=1024M")

分岐プロセスの詳細については、SBT のドキュメントを参照してください。

于 2012-04-14T18:53:48.837 に答える
10

これをに追加する最良の方法を見つけました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 メーリング リストでの議論

于 2014-08-18T11:06:35.697 に答える