[Erlang 学习笔记]关于 erlang application 的一些疑问
2012-05-23 20:44
405 查看
在尝试application的发布时,有些不解的地方,求解 ->官方文档用例ch_app.app
{application, ch_app, [{description, "Channel allocator"}, {vsn, "1"}, {modules, [ch_app, ch_sup, ch3]},{registered, [ch3]},{applications, [kernel, stdlib, sasl]},{mod, {ch_app,[]}}]}.ch_app.erl
-module(ch_app).-behaviour(application).-export([start/2, stop/1]).start(_Type, _Args) ->ch_sup:start_link().stop(_State) ->ok.一开始认为把模块打包成应用进行发布,是可以通过application:start(AppName).来回调每模块的start()方法来启动各模块,从而启动应用。正如.app文件的option选项
{modules, [ch_app, ch_sup, ch3]},当启动了application:start(ch_app)之后,回调到ch_app:start() 和 ch_sup:start()。但可惜的是,实际上不是这样的,modules这个配置只是说明了application包括了那些模块,不是上面所想的作用,这样我就觉得application的存在还有意义吗?疑惑了- -我直接用ch_app:start(_,_).来启动都可以了看看官方文档里面,对modules的解析是这样的:
modules由该应用引入的所有模块。当生成启动脚本和tar文件时, systools 将用到这个列表。一个模块必须被定义于且仅于一个应用。默认为[]。从这里可以知道,modules这个列表一方面标记某模块属于此应用,另一方面当使用systools:make_tar(_Name)或systools:make_tar(_Name,[Option])的时候此列表将作为参数传入。那样我对.app文件的作用就有疑惑了。。。。application的实质性意义是什么??求解答。。
相关文章推荐
- 【C学习笔记】【疑问】关于const常量的实现机制在C和C++中的不同
- Python学习笔记(六)关于日期的一些操作
- 关于软件学习的一些疑问
- 关于LINQ(语言集成查询)的一些学习笔记
- 学习笔记:关于Linux主机将编译产生的模块导入目标板的一些基本步骤
- c++ 学习笔记 -- 关于cout的一些小细节
- Unity学习笔记 一些小疑问解答记录
- 关于Vue.js一些问题和思考学习笔记(2)
- 学习笔记一:关于directx sdk的安装于一些概念
- IntelliJ IDEA 学习笔记 - 关于tab的一些设置
- 关于css的一些学习笔记
- 关于C的一些学习笔记
- C++学习笔记之:关于类的一些补充测试(new和new[]/private构造/explicit等)
- 工作学习笔记——一些关于链接的有趣小问题
- 关于mybatis的一些学习笔记
- java学习笔记--关于interface和abstract的一些思考
- 关于linux 深度学习环境的一些配置笔记
- 关于this的一些学习笔记
- javascript学习笔记:关于创建数组的疑问
- 关于学习XHTML的一些笔记