我在.conf文件中拥有此文件,我想覆盖数组field1中索引0处的值
database {
master {
field1:["a","b","c"]
}
}
然后我通过sbt运行该应用程序:
sbt -Ddatabase.master.field1.0="11.111.11.111:3306" package
然后我在jar中查看.conf文件,什么都没有改变。
本指南指示按索引而不是整个数组更改每个数组元素(我也曾尝试过,但无济于事):https://salsa.debian.org/java-team/typesafe-config/blob/master/HOCON.md#array-and-object-concatenation
如何覆盖HOCONS中的数组元素?
答案 0 :(得分:2)
我认为问题是,您的hocon是您尝试打包的内容的一部分,但是 -D
会将参数赋予sbt JVM。为什么sbt JVM的配置对您打包的.jar
有什么影响?
编辑
阿德里安教我,这实际上是可能的。我下面的解决方案仍然是我想要的。它是明确且易于理解的。在我看来,某些参数和sbt调用似乎不太干净。
我想您想要一个特定于环境的数据库配置。
您可以像尝试sbt一样使用配置启动应用程序,也可以将不同系统的所有配置放在不同的hocons中,然后根据要启动的系统来加载hocons,您可以通过程序的参数对其进行定义。
Look at the docs,了解如何加载其他文件。