Config Load elixir在多个项目中配置层次结构
我正在用Elixir编写一个小项目,我将使用内置的配置功能。看起来我有一个调用API的通用项目: api/confix.exs:Config Load elixir在多个项目中配置层次结构,config,loading,elixir,Config,Loading,Elixir,我正在用Elixir编写一个小项目,我将使用内置的配置功能。看起来我有一个调用API的通用项目: api/confix.exs: use Mix.Config config :api, :status, "awesome" 我现在有第二个项目,应该利用这些变量 api_消费者/mix.exs def application do [applications: [:logger, :api]] end 当我在api_中运行控制台时,消费者访问变量会产生一个nil结果 iex -S mix
use Mix.Config
config :api, :status, "awesome"
我现在有第二个项目,应该利用这些变量
api_消费者/mix.exs
def application do
[applications: [:logger, :api]]
end
当我在api_中运行控制台时,消费者访问变量会产生一个nil结果
iex -S mix
iex(1)> Application.get_env(:api, :status)
=> nil
从我的理解(和我读到的)来看,这应该是可行的
有人知道这里发生了什么吗?
mix.exs
用于配置当前应用程序,而config.exs
用于配置其他应用程序。在:api
应用程序中,应将应用程序/0
函数中的默认值放入mix.exs
:
# api/mix.exs
def application do
[
applications: [:logger, :api],
env: [status: "awesome"]
]
end
然后,您可以在config.exs
文件中的:api_consumer
应用程序中覆盖此设置:
# api_consumer/config/config.exs
config :api, status: "fantastic"
可以找到更多信息