2013-04-24 13 views
31

Mam plik application.conf ze strukturą tak:Jak mogę przesłonić wartość listy konfiguracyjnej typesafe w wierszu poleceń?

poller { 
    datacenters = [] 
} 

chciałbym zastąpić centrów danych w wierszu poleceń. dla innych kluczy konfiguracyjnych, których wartości są typami prostymi (łańcuchy, liczby), mogę przesłonić przy użyciu -Dpath.to.config.value=<value>, a to działa dobrze. jednak nie mogę znaleźć sposobu, aby to zrobić dla list. w powyższym przykładzie próbowałem ustawić centra danych na ["SJC", "IAD"], tak jak: -Dpoller.datacenters="['SJC', 'IAD']", ale otrzymuję wyjątek, że kluczową wartością jest ciąg znaków, a nie lista. czy istnieje sposób, aby zasygnalizować bibliotece konfiguracji bezpiecznych dla typów, że ta wartość jest listą?

Odpowiedz

46

Alternatywna składnia jest zaimplementowana w wersji 1.0.1 do tego:

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

Zobacz https://github.com/typesafehub/config/issues/69 na tle –

3

miałem ten sam problem kilka tygodni temu, a wreszcie zanurkował do kodu źródłowego, aby zrozumieć, co się dzieje:

  • Ta funkcja nie jest realizowana, to nie jest możliwe, aby zdefiniować listę za pomocą wiersza poleceń argumentu

Naprawianie tego nie byłoby takie trudne, ale ktoś potrzebuje czasu, aby to zrobić.