我如何可以覆盖在命令行上类型安全的配置列表值?(How can I override a types

2019-09-01 02:03发布

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

poller {
  datacenters = []
}

我想重写"datacenters"在命令行上。

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

不过,我似乎无法找到一个方法来对 S做到这一点。 在上面的例子中,我试图设置"datacenters" ,以["SJC", "IAD"]像这样: -Dpoller.datacenters="['SJC', 'IAD']" ,但我得到一个异常的关键值是一个字符串,而不是一个列表。

有没有一种方法来通知的类型安全的配置库,这个值是一个列表?

Answer 1:

一个可选的语法在1.0.1版本中实现此:

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


Answer 2:

我有同样的问题几个星期前,最后一头扎进源代码来了解这是怎么回事:

  • 此功能没有实现,这是不可能使用命令行参数来定义列表

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



文章来源: How can I override a typesafe config list value on the command line?