Playframework 如何将javaOptions传递给;“玩跑步”;通过Build.scala
当我使用Playframework 如何将javaOptions传递给;“玩跑步”;通过Build.scala,playframework,sbt,Playframework,Sbt,当我使用run命令时,我想通过Build.scala将-Dconfig.file=conf/dev.conf参数传递给我的应用程序 我试图在我的Build.scala中放入类似的内容: val mySettings = Seq( (javaOptions in run) ++= Seq("-Dconfig.file=conf/dev.conf") ) val main = play.Project(appName, appVersion, appDependencies).settings
run
命令时,我想通过Build.scala将-Dconfig.file=conf/dev.conf
参数传递给我的应用程序
我试图在我的Build.scala中放入类似的内容:
val mySettings = Seq(
(javaOptions in run) ++= Seq("-Dconfig.file=conf/dev.conf")
)
val main = play.Project(appName, appVersion, appDependencies).settings(
mySettings: _*
)
但事实并非如此——从我收集的信息来看,这是因为SBT在我使用run时没有派生出新的JVM。除了设置环境变量之外,还有什么解决方法?问题似乎是Play与SBT JVM在同一JVM中运行,因此不使用SBT中设置的Java选项
您可以尝试以下方法:
- 使用
fork-in-run:=true
以便使用您提供的Java选项生成新的JVM
- 使用
-Dconfig.file=conf/dev.conf
- 在同一JVM中运行应用程序之前,请手动设置系统属性:
system.setProperty(“config.file”、“conf/dev.conf”)
我不确定所有这些解决方案是否都有效,但值得一试。正如@Sebastien Lorber所回答的那样
运行中的fork:=true
我们应该做到这一点。另请参见常见问题解答。在游戏控制台中有一个拨叉设置<代码>帮助分叉
说“如果为true,则在运行时分叉一个新的JVM。如果为false,则在与构建相同的JVM中运行。”。但我不知道在哪里或如何改变这种设置。