如何在命令行上覆盖类型安全配置列表值?

2022-09-01 02:03:48

我有一个结构如下的文件:application.conf

poller {
  datacenters = []
}

我想在命令行上覆盖。"datacenters"

对于值为简单类型(字符串,数字)的其他配置键,我可以使用 覆盖,这工作正常。-Dpath.to.config.value=<value>

但是,我似乎找不到一种方法来为列表执行此操作。在上面的示例中,我试图设置为这样:,但我得到一个异常,即键值是字符串,而不是列表。"datacenters"["SJC", "IAD"]-Dpoller.datacenters="['SJC', 'IAD']"

有没有办法向类型安全配置库发出信号,表明此值是一个列表?


答案 1

在版本 1.0.1 中为此实现了另一种语法:

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

答案 2

几周前,我遇到了同样的问题,最后深入研究了源代码以了解发生了什么:

  • 此功能未实现,无法使用命令行参数定义列表

修复它不会那么难,但有人需要花时间去做。


推荐