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