如何在命令行上覆盖typeafe配置列表值?

时间:2013-04-24 21:26:05

标签: java scala config typesafe

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

poller {
  datacenters = []
}

我想在命令行上覆盖数据中心。对于其值为简单类型(字符串,数字)的其他配置键,我可以使用-Dpath.to.config.value=<value>覆盖,这样可以正常工作。但是,我似乎找不到为列表执行此操作的方法。在上面的示例中,我尝试将数据中心设置为[“SJC”,“IAD”],如此:-Dpoller.datacenters="['SJC', 'IAD']",但我得到一个例外,键值是字符串,而不是列表。有没有办法向typesafe配置库发信号通知该值是一个列表?

2 个答案:

答案 0 :(得分:57)

在版本1.0.1中实现了替代语法:

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

答案 1 :(得分:3)

几个星期前我遇到了同样的问题,最后潜入源代码来了解发生了什么:

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

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