2013-04-24 31 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

我有同樣的問題幾個星期前,最後一頭扎進源代碼來了解這是怎麼回事:

  • 此功能沒有實現,這是不可能使用命令行參數
  • 定義列表

修復它並不難,但有人需要花時間去做。