Erlang *.app文件构成

*.app文件用来描述一个应用, 在erlang中, 应用用来表示一个独立的功能模块。它可以被
虚拟机独立启动, 应用分为库应用和普通应用, 普通应用有一个入口模块而库应用没有。

app文件组成

以cowboy为例子:
{application, cowboy, [
{description, “Small, fast, modular HTTP server.”},
{vsn, “2.0.0-pre.2”},
{modules, [‘cowboy’,’cowboy_app’,’cowboy_bstr’,’cowboy_clock’,’cowboy_constraints’,’cowboy_handler’,’cowboy_http2’,’cowboy_loop’,’cowboy_middleware’,’cowboy_protocol’,’cowboy_req’,’cowboy_rest’,’cowboy_router’,’cowboy_spdy’,’cowboy_static’,’cowboy_stream’,’cowboy_sub_protocol’,’cowboy_sup’,’cowboy_tls’,’cowboy_websocket’]},
{registered, [cowboy_sup,cowboy_clock]},
{applications, [kernel,stdlib,crypto,cowlib,ranch]},
{mod, {cowboy_app, []}}
]}.

  • 首先,整个文件是一个erlang元组,原子application表示这个原子的用途是用来描述一个应用,原子cowboy表示该应用的名字。然后用一个列表来描述应用的属性

  • description 元组用来填充应用的字符串描述

  • vsn 表示应用的版本号

  • modules 表示该应用包含的模块

  • registered 表示该应用注册了哪些名字

  • applications 表示该应用依赖的其他应用

  • mod 表示应用的入口模块, 由{app_mod, parameters}组成,应用master会通过调用入口模块的start/2函数来启动应用, start的第一个参数为启动类型, 由系统自己传入, 第二个参数由这里的parameters传入。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐