2013-04-24 56 views
31

我有如下所示的结构的application.conf文件:如何在命令行上覆盖类型安全配置列表值?

poller { 
    datacenters = [] 
} 

我想覆盖在命令行上的数据中心。对于其值为简单类型(字符串,数字)的其他配置键,我可以使用-Dpath.to.config.value=<value>来覆盖,并且这可以正常工作。然而,我似乎无法找到一种方法来做这个清单。在上面的例子中,我试图将数据中心设置为[“SJC”,“IAD”],如下所示:-Dpoller.datacenters="['SJC', 'IAD']",但我得到一个例外,即键值是一个字符串,而不是一个列表。有没有办法告诉类型安全配置库,这个值是一个列表?

回答

46

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

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

见https://github.com/typesafehub/config/issues/69背景 – 2013-06-04 16:34:03

3

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

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

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