0

I have this in a .conf file and I want to overwrite the value at index 0 in array field1

database {
  master {
    field1:["a","b","c"]
  }
}

and I run the application via sbt like this:

sbt -Ddatabase.master.field1.0="11.111.11.111:3306" package

then I look inside the jar at the .conf file and nothing is changed.

This guide indicates to change each array element by index instead of the whole array (which I also tried but to no avail): https://salsa.debian.org/java-team/typesafe-config/blob/master/HOCON.md#array-and-object-concatenation

How do you overwrite array elements in HOCONS?

4

1 回答 1

3

我认为问题在于,您的 hocon 是您尝试打包的内容的一部分,但是-D会将参数提供给 sbt 的 JVM。为什么 sbt 的 JVM 的配置会对.jar你打包有什么影响?

编辑
阿德里安教我,这实际上是可能的。我下面的解决方案仍然是我更喜欢的。它是明确的,很好理解。一些参数和 sbt 调用在我看来不是很好和干净。

我猜你想要一个特定于环境的数据库配置。
您可以在尝试使用 sbt 时使用您的配置启动应用程序,或者将不同系统的所有配置放在不同的 hocons 中,并根据您启动的系统加载 hocons,您可以通过程序的参数来定义。
查看文档以了解如何加载其他文件。

于 2019-07-09T06:52:23.843 回答