我正在编写Elixir软件包,我想指定一个默认的应用程序配置(用户可以通过在config.exs
中指定自定义值来覆盖它)。我最初把它们放在我的项目config.exs
中,直到我意识到配置文件不会被依赖于这个库的项目加载。
配置文件本身告诉您:
此配置在任何依赖项之前加载并受到限制 到这个项目。如果另一个项目依赖于这个项目,那么这个 文件未加载也不会影响父项目。为此原因, 如果您想为您的应用程序提供默认值 第三方用户,应该在你的" mix.exs"文件。
我一直在努力了解如何在mix.exs
中指定应用程序默认值并使用它们。我目前的解决方案是使用Application.get_env/3
和默认参数,但这对我来说似乎不对,因为应用程序默认值会分散在代码中。
Application.get_env(:my_library, :arg, "default value")
那么,如何在mix.exs
中指定应用程序默认值?
答案 0 :(得分:7)
您可以在mix.exs
中为应用程序设置默认配置值 - 当在另一个项目中用作依赖项时,这些值也可用。例如:
def applications do
[applications: [:logger, ...],
mod: {MyLibrary.Application, []},
env: [arg: "default value"]]
end