8

使用命令-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: _*
)

但事实并非如此——据我所知,这是因为 SBT 在我使用 run 时不会派生新的 JVM。除了设置环境变量之外的任何解决方法?

4

2 回答 2

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")

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

于 2013-08-17T09:55:03.317 回答
0

正如@Sebastien Lorber 回答的那样,

fork in run := true

应该做的伎俩。另请参阅除了运行之外,我如何创建自定义运行任务?在常见问题解答中。

于 2013-12-15T09:43:28.257 回答