Erlang的application类似Java中的工程, 有两种类型: 类库和独立运行的application. 好比java中的单纯的作为其他项目的类库(如memcached 客户端) 和 独立运行的工程(如hadoop), 并且可运行的application也是可以作为其他application的依赖的.
使用rebar创建工程时, 两种application工程的目录结构有所不同:
library模式的application目录结构应该是这样的:
而独立部署的application的工程目录结构应该是这样的:
其中, apps 目录中存放该application 代码, deps目录中用于使用rebar get-deps 命令下载依赖.
需要修改3处, 例如添加bigwig依赖:
1. rebar.config
{deps, [
{bigwig, ".*", {git, "https://github.com/haitaoyao/bigwig.git", {branch, "master"}}}
]}.
2. rel/reltool.config
添加:
{rel, "elogserver", "2",
[
kernel,
observer,
stdlib,
sasl,
bigwig,
elogserver
]},
{app, bigwig, [{incl_cond, include}]},
具体参见https://raw.github.com/haitaoyao/elogserver/master/rel/reltool.config
我简单写了shell脚本, 简化了创建工程的流程. 具体参见:
https://github.com/haitaoyao/rebar-creator
上面截图的例子,就是使用 rebar-creator create-lib testlib 和 rebar-creator create-app testapp 实现的.