我有一个灵丹妙药伞应用程序(A),下面有多个应用程序。其中一个(B)被定义为单独的存储库,并包含自己的配置(config/config.exs
)文件,主要是默认值。
将应用程序B添加到A并启动伞形应用程序时,不会加载应用程序B的配置。看起来我需要在A配置中明确包含B的所有配置参数。
我希望应用程序B的配置仍然可以在应用程序A中使用,我只需要覆盖一些特定的值。
如果没有在主应用程序(A)配置文件中再次指定所有配置参数,我可以向我解释如何实现它吗?
答案 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"