我在Play框架中使用Java,我需要在开发过程中添加某些自定义模块。 到目前为止,我通过添加具有以下内容的新conf文件来做到这一点:
include "application.conf"
play.modules.enabled += "DevModule"
并像这样运行sbt:
sbt -Dconfig.file=conf/local.conf
在this link我发现可以使用PlayKeys.devSettings并覆盖您选择的Play设置。如果我可以在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。
答案 0 :(得分:0)
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())
}
}