将命令行参数传递给SBT以设置TypeSafe配置键值

时间:2015-07-20 20:22:49

标签: scala sbt

鉴于以下情况" Main"应用程式:

package net

import com.typesafe.config.ConfigFactory

object Main extends App {
    override def main(args: Array[String]) {
        val x = ConfigFactory.load().getString("app.bar")
        println(s"x: $x")
    }
}

application.conf

app {
    bar = ${?BAR}
}

我可以通过以下方式传入命令行参数:

$sbt test:run -DBAR=bippy
[info] Set current project to typesafe_config_env_var 
    (in build file:.../typesafe_config_env_var/)
[info] Running net.Main 
x: bippy

我写了这个简单的例子来尝试重现problem解析命令行参数。但是,正如上面的输出所示,此测试成功运行。

这是在sbt中传递命令行参数的标准方法吗?

1 个答案:

答案 0 :(得分:2)

取决于你对标准的意思。 AFAIK,这是传递参数的“标准”方式:

$ sbt "run --bippy"

您的示例基本上使用了类型安全配置中的一个功能,该功能将环境变量绑定到application.conf定义。 Here's a tutorial为此。