我正在使用Java的Play框架,我需要在开发过程中添加某些定制的模块。到目前为止,我是通过添加具有以下内容的新 conf 文件来做到这一点的:
include "application.conf"
play.modules.enabled += "DevModule"
并像这样运行 SBT:
sbt -Dconfig.file=conf/local.conf
在此链接上,我发现可以使用PlayKeys.devSettings并覆盖您选择的播放设置。如果我可以在build.sbt中使用这种语法和类似的东西,那就太好了:
PlayKeys.devSettings := Seq("play.modules.enabled" -> "DevModule")
但是这个不起作用,因为我在运行时收到此异常:
play.api.Configuration$$anon$1: Configuration error[hardcoded value:
play.modules.enabled has type STRING rather than LIST]
我知道"DevModule"
需要插入"play.modules.enabled"
列表中,但我不知道如何在 sbt 中执行此操作,因为我不知道 Scala。
PlayKeys.devSettings希望提供Seq[(String, String)])
。试试这个形式,类似于你在conf文件中写的:
PlayKeys.devSettings := Seq(""""play.modules.enabled+="""" -> "DevModule")
这就是将设置应用于列表的方式。您可以通过在控制器中的某个位置打印来调试配置的内容,例如:
//...other imports
import com.typesafe.config.Config
class ApplicationController @Inject()(
config: Config
//...
) extends MessagesAbstractController(cc) {
def index() = Action{ implicit r =>
println(config.getList("play.modules.enabled"))
Ok(views.html.index())
}
}