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

the*_*met 8 sbt playframework

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

我试图把这样的东西放在我的Build.scala:

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

val main = play.Project(appName, appVersion, appDependencies).settings(
  mySettings: _*
)
Run Code Online (Sandbox Code Playgroud)

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

Seb*_*ber 2

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

你可以尝试这样的事情:

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

  • 启动 SBT-Dconfig.file=conf/dev.conf

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

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