我无法弄清楚如何自动启动" deps"在芝加哥老板的应用。
使用applcation:which_applications()
我可以看到一群开始像" lager,ranch,cowboy ..等等"。如何开始我添加的另一个?
如果我去控制台并运行application:start(oauth2)
并且没问题。我可以开始了。
但我尝试更改src/xxx.app.src
并将其添加到{applications,[]}
,但没有去。这不是加载/启动我所依赖的任何应用程序的地方吗?
但我无法找到老板如何加载并启动所有其他应用程序。
顺便说一下,这个oauth2应用程序并不包含应用程序行为文件(oauth2_app.erl)所以我不知道这是否相关。因为我可以手动启动它。
所以,困惑。任何帮助将不胜感激。
另外:我记得我确实通过将application:start(xxx)
添加到/priv/init/xxx_01_news.erl
init
函数中来启动应用程序,但我认为这非常糟糕。
答案 0 :(得分:0)
您可以使用rebar.config
添加您的依赖项应用程序,然后以这种方式编辑boss.config
文件:
applications
。boss.config 文件:
[
{boss, [
{path, "./deps/boss"},
{applications, [your_app_name, your_app_dep_1, your_app_dep_2]},
{assume_locale, "en"},
%% ... other configuration
%% APPLICATION CONFIGURATIONS
{your_app_name, []},
{your_app_dep_1, []},
{your_app_dep_2, []}
].
编辑:这种方式CB希望另一个boss应用程序查找路由器文件并发出警告,如果找不到它。但是,在init
函数中启动依赖关系并不是一种肮脏的方式,我建议考虑它。