【问题标题】:How to pass javaOptions to "play run" through Build.scala如何通过 Build.scala 将 javaOptions 传递给“play run”
【发布时间】:2013-08-19 08:26:17
【问题描述】:

当我使用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。设置环境变量的任何解决方法除了

【问题讨论】:

  • 游戏控制台中有一个fork 设置。 help fork 说“如果为真,则在运行时分叉一个新的 JVM。如果为假,则在与构建相同的 JVM 中运行。”。我不知道在哪里或如何更改该设置。

标签: playframework sbt


【解决方案1】:

问题似乎是 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")

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

【讨论】:

    【解决方案2】:

    正如@Sebastien Lorber 所回答的那样,

    fork in run := true
    

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

    【讨论】:

      猜你喜欢
      • 2012-02-17
      • 2015-12-20
      • 2019-02-08
      • 1970-01-01
      • 2018-03-27
      • 2023-03-16
      • 2016-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多