Config Load elixir在多个项目中配置层次结构

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

我正在用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

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"
可以找到更多信息