Как переписать элементы массива в HOCONS? - PullRequest
0 голосов
/ 09 июля 2019

У меня есть это в файле .conf, и я хочу перезаписать значение индекса 0 в массиве field1

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

, и я запускаю приложение через sbt следующим образом:

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

Затем я смотрю внутрь фляги на файл .conf, и ничего не меняется.

Это руководство указывает на изменение каждого элемента массива по индексу, а не по всему массиву (что я также пытался, но безрезультатно):https://salsa.debian.org/java-team/typesafe-config/blob/master/HOCON.md#array-and-object-concatenation

Как перезаписать элементы массива в HOCONS?

1 Ответ

2 голосов
/ 09 июля 2019

Я думаю, проблема в том, что ваш hocon является частью того, что вы пытаетесь упаковать, но -D передаст параметры JVM sbt.Почему конфигурация JVM sbt имеет какое-либо влияние на .jar, который вы упаковываете?

Edit
Адриан научил меня, что это действительно возможно.Тем не менее, мое решение ниже - то, что я предпочел бы.Это ясно и хорошо для понимания.Некоторые параметры и вызов sbt кажутся мне не очень хорошими и чистыми.

Полагаю, вы хотите иметь конфигурацию базы данных для конкретной среды.
Вы можете запустить приложение с вашей конфигурацией, как выпопытайтесь с помощью sbt или поместите все конфиги для разных систем в разные hocons и загрузите hocons в зависимости от системы, которую вы запускаете, которую вы можете определить с помощью параметра для программы.
Посмотрите документы , чтобы увидетькак загрузить дополнительные файлы.

...