дублировать application.conf в проектах конфигурации typesafe

Я читаю некоторый код, который использует конфигурацию typesafe для чтения файла application.conf в папке ресурсов. Я использую библиотеку, в папке ресурсов которой есть application.conf, и я вызываю эту библиотеку из другого проекта, у которого есть собственный application.conf в папке ресурсов.

Сможет ли typesafe config читать правильные файлы конфигурации соответственно?


person Knows Not Much    schedule 15.09.2016    source источник


Ответы (1)


Из документации:

Синтаксис подстановки ${foo.bar} будет разрешен дважды. Сначала все файлы reference.conf объединяются, а затем разрешается результат. Во-вторых, все application.conf накладываются на reference.conf, и результат этого снова обрабатывается.

Таким образом, обе библиотеки будут видеть один и тот же Config, что является результатом слияния обоих application.conf (при условии, что обе используют поведение по умолчанию и в пути к классам больше нет файлов application.conf или reference.conf). Каждая библиотека должна не просто помещать свою конфигурацию в корень, а вместо этого иметь свою часть дерева конфигурации: т.е.

debug = true
server = "example.com"

но

my.cool.library {
  debug = true
  server = "example.com"
}

При соблюдении этого правила библиотеки не будут конфликтовать. Если они используют один и тот же путь с разным значением, у вас будут проблемы.

person Alexey Romanov    schedule 15.09.2016