鉴于以下情况" 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中传递命令行参数的标准方法吗?
答案 0 :(得分:2)
取决于你对标准的意思。 AFAIK,这是传递参数的“标准”方式:
$ sbt "run --bippy"
您的示例基本上使用了类型安全配置中的一个功能,该功能将环境变量绑定到application.conf
定义。 Here's a tutorial为此。