首先创建目录example,进入目录创建app:
[admin@localhost ~]$ mkdir example [admin@localhost ~]$ cd example/ [admin@localhost example]$ rebar create-app appid=example ==> example (create-app) Writing src/example.app.src Writing src/example_app.erl Writing src/example_sup.erl
创建Makefile如下:
all: deps compile compile: rebar compile deps: rebar get-deps clean: rebar clean rel: all rebar generate
同时在此目录下创建rel子目录:
[admin@localhost example]$ mkdir rel
假设我们使用了lager,则在此目录下同时创建rebar.config文件,内容如下:
%%-*- mode: erlang -*- {sub_dirs, ["rel"]}.
ok,现在我们make一下,得到完整的目录结构如下:
example/ |-- Makefile|-- ebin/|-- rebar.config |-- rel/ `-- src/
接下来,我们进入rel目录,输入:
[admin@localhost example]$ cd rel/ [admin@localhost rel]$ rebar create-node nodeid=example ==> rel (create-node) Writing reltool.config Writing files/erl Writing files/nodetool Writing files/example Writing files/sys.config Writing files/vm.args Writing files/example.cmd Writing files/start_erl.cmd Writing files/install_upgrade.escript
可以看到rel目录下多了reltool.config文件,和files文件夹(下面都是一些模板文件)
rel |-- files | |-- erl | |-- example | |-- example.cmd | |-- install_upgrade.escript | |-- nodetool | |-- start_erl.cmd | |-- sys.config | `-- vm.args `-- reltool.config
编辑reltool.config中的
{lib_dirs,[]},
为:
{lib_dirs,["http://www.cnblogs.com/"]},
回到example目录,创建发布:
[admin@localhost rel]$ cd .. [admin@localhost example]$ make rel
这时候rel目录下的结构变为:
rel/ |-- example | |-- bin | | |-- example | | |-- example.cmd | | |-- install_upgrade.escript | | `-- start_erl.cmd | |-- erts-5.10.1/ | |-- lib | | |-- example-1 | | | `-- ebin | | | |-- example.app | | | |-- example_app.beam | | | `-- example_sup.beam | | |-- kernel-2.16.1/ | | |-- sasl-2.3.1/ | | `-- stdlib-1.19.1/ | |-- log | | `-- sasl | `-- releases | |-- 1 | | |-- example.boot | | |-- example.rel | | |-- example.script | | |-- start_clean.boot | | |-- start_clean.rel | | |-- start_clean.script | | |-- sys.config | | `-- vm.args | |-- RELEASES | `-- start_erl.data |-- files | |-- erl | |-- example | |-- example.cmd | |-- install_upgrade.escript | |-- nodetool | |-- start_erl.cmd | |-- sys.config | `-- vm.args `-- reltool.config
这时候,我们在example目录下运行:
[admin@localhost example]$ ./rel/example/bin/example console Eshell V5.10.1 (abort with ^G) (example@127.0.0.1)1> application:which_applications(). [{example,[],"1"}, {sasl,"SASL CXC 138 11","2.3.1"}, {stdlib,"ERTS CXC 138 10","1.19.1"}, {kernel,"ERTS CXC 138 10","2.16.1"}]
可以看到运行的applications。