【发布时间】:2018-12-23 22:54:09
【问题描述】:
所以问题真的很简单,我希望解决方案也是如此。
所以基本上我有两个配置文件application.conf 和dev.conf。我正在像sbt -Dconfig.file=dev.conf 这样的命令行传递我的配置文件。
问题是当我从主对象(extends App)中使用ConfigFactory.load 时,它会加载我通过命令行传递的配置(在本例中为dev.conf),但是当我从不同对象加载配置时加载默认application.conf。
我可以加载从任何对象的参数传递的配置吗?
【问题讨论】:
-
不清楚在这两种情况下如何运行您的应用程序。您可能知道,无论表面上是如何完成的,它都归结为启动 JVM 的
java -cp classpath your.SomeClass调用。只要将config.file系统属性设置为dev.conf,通常通过java二进制文件(java -Dconfig.file=dev.conf)的命令行参数,在哪里调用ConfigFactory.load()并不重要,因为系统属性将在整个应用程序中保持相同,因为它是一个全局状态。 -
我的意思是,将系统属性正确传递给应用程序很重要,因为这是它可以为一个主类工作而另一个主类失败的唯一原因。
-
在这两种情况下我都运行应用程序
sbt -Dconfig.file="dev.conf",然后在sbt内部我使用runMain ...
标签: scala typesafe-config