我们正在将我们的应用程序迁移到Play Framework。我们一直在使用 gradle 构建系统,并且在 sbt 方面遇到了一些问题。
我们使用 jooq 作为数据库,这意味着我们的构建文件需要包含数据库用户名/密码(因为 jooq 通过读取 db 模式生成代码)。由于这不是一个好主意,所有敏感数据都存储在构建可能运行的每个主机上的受保护文件中,构建系统从文件中读取,然后相应地配置系统。这在 gradle 中非常简单,但我遇到了 sbt 的死胡同。这是我到目前为止所拥有的:
import org.json4s._
import org.json4s.native.JsonMethods.
val jsonBuildConfig = TaskKey[JValue]("json-build-config")
jsonBuildConfig := {
val confLines = scala.io.Source.fromFile("/etc/application.conf").mkString
parse(confLines)
}
jooqOptions := Seq(
"jdbc.driver" -> "org.postgresql.Driver",
"jdbc.url" -> "FIXME",
"jdbc.user" -> "FIXME",
"jdbc.password" -> "FIXME"
)
问题是三个配置参数,FIXME
作为它们的当前值jooqOptions
,需要从文件中选择。
在 内jsonBuildConfig
,我可以这样做:
val confLines = scala.io.Source.fromFile("/etc/application.conf").mkString
val jsonConf = parse(confLines)
(jsonConf / "stagingdb" / "url").values
但是如何在jooqOptions
conf set 中设置呢?