如何通过Build.scala将javaOptions传递给“play run”

时间:2013-08-16 20:28:09

标签: playframework sbt

当我使用-Dconfig.file=conf/dev.conf命令时,我想通过Build.scala将run参数传递给我的应用程序。

我想在我的Build.scala中添加类似的东西:

val mySettings = Seq(
  (javaOptions in run) ++= Seq("-Dconfig.file=conf/dev.conf")
)

val main = play.Project(appName, appVersion, appDependencies).settings(
  mySettings: _*
)

但它没有 - 从我收集的内容来看,这是因为当我使用run时,SBT不会分叉新的JVM。除设置环境变量之外的任何变通方法

2 个答案:

答案 0 :(得分:2)

问题似乎是Play在与SBT JVM相同的JVM中运行,因此不使用在SBT中设置的Java选项。

您可以尝试以下内容:

  • 使用fork in run := true以便使用您提供的Java选项生成新的JVM

  • 使用-Dconfig.file=conf/dev.conf

  • 启动SBT
  • 在同一JVM中运行应用程序之前手动设置系统属性:System.setProperty("config.file","conf/dev.conf")

我不确定所有这些解决方案是否有效,但值得尝试

答案 1 :(得分:0)

正如@Sebastien Lorber回答的那样,

fork in run := true

应该做的伎俩。另请参阅常见问题解答中的How can I create a custom run task, in addition to run?