如何在elixir伞应用程序中处理多个应用程序配置文件

时间:2017-07-18 06:18:13

标签: elixir mix

我有一个灵丹妙药伞应用程序(A),下面有多个应用程序。其中一个(B)被定义为单独的存储库,并包含自己的配置(config/config.exs)文件,主要是默认值。

将应用程序B添加到A并启动伞形应用程序时,不会加载应用程序B的配置。看起来我需要在A配置中明确包含B的所有配置参数。

我希望应用程序B的配置仍然可以在应用程序A中使用,我只需要覆盖一些特定的值。

如果没有在主应用程序(A)配置文件中再次指定所有配置参数,我可以向我解释如何实现它吗?

1 个答案:

答案 0 :(得分:2)

使用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"