как я могу переопределить значение списка Typesafe config в командной строке?


У меня есть заявление.conf-файл со структурой, подобной следующей:

poller {
  datacenters = []
}

Я хотел бы переопределить центры обработки данных в командной строке. для других конфигурационных ключей, значения которых являются простыми типами (строки, числа), я могу переопределить с помощью -Dpath.to.config.value=<value>, и это прекрасно работает. однако я не могу показаться, чтобы найти способ, чтобы сделать это для списков. в приведенном выше примере я попытался установить центры обработки данных в ["SJC", "IAD"] так: -Dpoller.datacenters="['SJC', 'IAD']", но я получаю исключение, что значение ключа является строкой, а не списком. является есть ли способ, чтобы сигнал в библиотеку типизированного конфиг, что это значение представляет собой список?

2 38

2 ответа:

Для этого в версии 1.0.1 реализован альтернативный синтаксис:

-Dpoller.datacenters.0=SJC -Dpoller.datacenters.1=IAD

У меня была такая же проблема несколько недель назад, и, наконец, я нырнул в исходный код, чтобы понять, что происходит:

  • Эта функция не реализована, невозможно определить список с помощью аргумента командной строки

Исправить это будет не так уж сложно, но кому-то нужно время, чтобы это сделать.