tor*_*tte 6 elixir-mix elixir erlang-otp
从mix deps文档中:
:runtime-依赖项是否是运行时应用程序的一部分。如果您的mix.exs文件中:applications没有提供密钥def application,则Mix会自动将所有依赖项作为运行时应用程序包括在内,除非runtime: false给出了。默认为true。
根据mix compile.app文档:
:applications-您的应用程序在运行时依赖的所有应用程序。默认情况下,此列表是根据您的依赖项自动推断出来的。Mix和其他工具使用应用程序列表来启动依赖关系,然后再启动应用程序本身。
这是否意味着添加runtime: false依赖项将使其不能作为应用程序监视树的一部分启动,但其功能将在编译时可用?
就像您提到的,情况确实如此。runtime: false启动主应用程序时,标记依赖项不会将其作为应用程序监视树的一部分启动。
在Elixir 1.4之前,我们必须通过将它们放入applications以下位置来分别指定需要启动的应用程序:
def application do
[applications: [:logger, :bamboo]]
end
Run Code Online (Sandbox Code Playgroud)
现在,我们extra_applications改为使用并标记特定的依赖项,runtime: false以在运行时将其从应用程序列表中删除。