在build.sbt中加载外部设置

时间:2014-11-27 15:23:44

标签: scala sbt

我正在尝试将sbt插件添加到播放应用程序中。

该插件需要一些配置,因为它需要连接到数据库。这些是build.sbt文件中插件所需的设置:

 jooqOptions := Seq("jdbc.driver" -> "com.mysql.jdbc.Driver",
                    "jdbc.url" -> "jdbc:mysql://localhost:3306/fnord",
                    "jdbc.user" -> "fnord",
                    "jdbc.password" -> "fnord",
                    "generator.database.name" -> "org.jooq.util.mysql.MySQLDatabase",
                    "generator.database.inputSchema" -> "fnord",
                    "generator.target.packageName" -> "com.myproject.jooq")

由于用户和密码将取决于我部署应用程序的特定计算机,我想从每个用户可以自己分配用户和密码的地方加载它们。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

一种方法是从环境变量中读取它们,另一种方法是在您在sbt项目中加载和读取的预定义路径中具有某种配置文件。

由于sbt配置是scala代码,因此您可以使用sys.env来读取环境变量。 您可以找到scaladoc for sys.env here

答案 1 :(得分:1)

我使用以下公认的解决方案解决了这个问题:

How get application version in play framework and build.sbt

我已将此添加到我的build.sbt:

import com.typesafe.config._

val conf = ConfigFactory.parseFile(new File("conf/application.conf")).resolve()

version := conf.getString("app.version")

在我的application.conf中:

app.version="0.2-SNAPSHOT"