4

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

4

2 回答 2

13

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

  • 您可以像这样在命令行中指定应用程序: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 发布

于 2016-10-30T06:58:39.987 回答
-1

我想补充一点,您还可以在 myapp.app.src 文件中指定启动时启动的应用程序。

...
{applications,
   [kernel,
    stdlib,
    anotherapp
   ]},
...
于 2017-07-27T21:17:38.733 回答