如何让Erlang应用程序在启动rebar3时运行

hor*_*air 3 rebar3

我可以通过application:start(lager)后面的操作从rebar3 shell手动启动应用程序application:start(myapp).我希望在不必输入它的情况下发生这种情况,例如通过执行一个告诉rebar3运行这些命令的shell脚本.这可能吗?

Lim*_*men 9

假设您想在开发期间运行应用程序,您可以这样做:

  • 要么在命令行指定应用程序,请执行以下操作: rebar3 shell --apps lager myapp

  • 或者您在rebar.config中指定,{shell, [{apps, [lager, myapp]}]}.然后只需运行它rebar3 shell.例如,我有一个名为的应用程序,tron并在我的rebar.config中有以下行:{shell, [{apps, [kernel,stdlib,cowboy,lager,tron]}]}.现在,当我运行rebar3 shell我的erlang应用程序时,它与所有依赖项一起启动.

有关rebar3 shell以及如何使用它的更多信息,请参阅创建者的精彩博客文章或此处的官方文档.

但正如您可能知道的那样,运行应用程序进行部署的正确方法是首先构建一个版本,然后将其作为可执行文件运行(自从我构建一个版本以来已经有一段时间了但是当时它比听起来更难,不幸的是!虽然看起来像rebar3可能让它变得更容易:rebar3发布.