Как работать с несколькими файлами конфигурации приложения в приложении зонтичного эликсира

У меня есть приложение-зонтик эликсира (A), под которым есть несколько приложений. Один из них (B) определен как отдельный репозиторий и содержит собственный файл конфигурации (config/config.exs), в основном со значениями по умолчанию.

При добавлении приложения B в A и запуске зонтичного приложения конфигурация для приложения B не загружается. Похоже, мне нужно явно включить все параметры конфигурации для B в конфигурацию A.

Я ожидаю, что конфигурация для приложения B будет по-прежнему доступна в приложении A, и мне нужно будет только переопределить некоторые определенные значения.

Может ли кто-нибудь объяснить мне, как я могу этого добиться, не указывая все параметры конфигурации снова в файле конфигурации основного приложения (A)?


person mkorszun    schedule 18.07.2017    source источник


Ответы (1)


Зонтичное приложение, созданное с помощью mix new --umbrella, должно автоматически включать конфигурации всех приложений.

В your_project/apps/app_a/mix.exs нужно настроить чтение конфига из корня зонта:

 build_path: "../../_build",
 config_path: "../../config/config.exs",
 deps_path: "../../deps",
 lockfile: "../../mix.lock",

А в your_project/config/config.exs он должен включать конфигурацию всех приложений:

use Mix.Config

# By default, the umbrella project as well as each child
# application will require this configuration file, ensuring
# they all use the same configuration. While one could
# configure all applications here, we prefer to delegate
# back to each application for organization purposes.
import_config "../apps/*/config/config.exs"
person Mike Buhot    schedule 18.07.2017
comment
Благодарю. Как это будет работать для приложения, включенного в качестве зависимости, а не встроенного в каталог apps? - person mkorszun; 24.07.2017
comment
Извините, чтобы установить значение по умолчанию в одном пакете для использования в другом, поместите значения в mix.exs, см. stackoverflow.com/a/43304305 /1650580 - person Mike Buhot; 24.07.2017