5

什么时候只deps在 my中指定依赖项mix.exs而不是在中指定运行时依赖项才合适applications

我认为这applications是在我自己的应用程序启动之前需要启动的实际应用程序,但是我遇到了一个问题,exrmJazz直到我包含:jazzapplications.

4

1 回答 1

5

OTP 应用程序更像是一个组件——一组可以(但不需要)运行某些进程的模块和函数。如果 OTP 应用程序没有启动自己的监督树,则称为库应用程序。无论哪种方式,如果您在运行时使用某些库函数,则需要将其指定为运行时 dep。

相比之下,编译时依赖仅确保第三方代码在本地(在您的开发/构建机器上)被获取和可用。如果 3rd 方代码在运行时之外发挥其魔力,这将很有用。一个例子可能是我自己的ExActor或纯 Erlang meck模拟库。在第一种情况下,ExActor 在编译期间发挥其魔力,而在第二种情况下,您只需要在测试期间使用模拟库。

于 2015-05-15T11:56:54.620 回答