SBT:在PlayKeys.devSettings

时间:2018-04-16 16:49:15

标签: scala playframework sbt

我在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。

1 个答案:

答案 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())
  }
}