{application, tcp_rpc,
[{description, "RPC server for Erlang and OTP in action"},
{vsn, "0.1.0"},
{modules, [tr_app,
tr_sup,
tr_server]},
{registered, [tr_sup, tr_server]},
{applications, [kernel, stdlib]},
{mod, {tr_app, []}}
[{description, "RPC server for Erlang and OTP in action"},
{vsn, "0.1.0"},
{modules, [tr_app,
tr_sup,
tr_server]},
{registered, [tr_sup, tr_server]},
{applications, [kernel, stdlib]},
{mod, {tr_app, []}}
]}.
description:针对应用的简短描述。通常有一两句话, 但你想写多长都可以。
vsn:应用的版本。 版本可以用任意字符串 表示, 但我们建议你坚持采用标准的X.X.X格式;虽然Erlang/OTP本身并不关心你使用什么字符串表示应用的版本,但某些程序会出于特定目的自行解析应用的版本字符串,胡乱选取的顺序无关紧要,但按字典序对模块进行排序会较为易于维护。
registered:我们知道,对Erlang进程进行注册后,便可以用注册名来定位进程。这种手法常用于系统服务等场合。在 .app文件中罗列出所有进程注册名并不会促使系统执行实际的注册操作,但可以告知OTP系统哪个进程注册了哪个名字,从而为系统升级等操作提供便利,同时也可以尽早发现重复的注册名并给出警告。
application:必须在该应用启动前先行启动的所有应用。应用往往会依赖于其他应用。主动应用要求自己所依赖的所有应用在自己的生命周期开始之前先行启动并就绪。列表中各应用的顺序无关紧要——OTP很智能,它会纵观整个系统并明辨每个应用的启动时机。
mod:告知OTP系统应该如何启动应用。该参数的值是一个无级,其内容为一个模块名以及一些可选的启动参数。(不要把通用配置信息写到这些参数中——请使用正规的配置文件来存放通用配置信息。)这个模块必须实现application行模式。