Typesafe Activator java.lang.ClassNotFoundException 在 config



在Scala Play2应用程序中,我想为不同的环境定义单独的设置。我的方法是使用不同的 .conf 文件并从 -Dconfig.file=... 开始。

通话时一切正常

play -Dconfig.file=conf/application.conf

play -Dconfig.file=conf/test.conf

但是当打电话时

activator -Dconfig.file=conf/application.conf ui

我得到一个

java.lang.ClassNotFoundException: Global$

我假设 -Dconfig.file 对激活器的工作方式相同是错误的吗?使用激活器获得我想要的东西的正确方法是什么?

应用程序:

...
application.global=Global
...

test.conf:

...
application.global=GlobalForTest
...

Global.scala:

object Global extends GlobalSettings {
  override def onStart(app: Application) {
    Logger.info("Application has started")
    AppContext.databaseDetails = "default database details"
  }
}

GlobalForTest.scala:

object GlobalForTest extends GlobalSettings {
  override def onStart(app: Application) {
    Logger.info("Application has started in test mode")
    AppContext.databaseDetails = "test database details"
  }
}

你能在激活器上打开一个错误吗? 看起来config.file没有传递给我们分叉的sbt进程。 我们需要为您提供一些机制来控制将哪些系统变量传递给分叉的 sbt,或者以某种方式添加/控制它们。 目前,这是一个 UI 限制。

但是,./activator test./activator run应该以与游戏相同的方式运作。

最新更新