首先创建目录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。

 

 

 

 posted on 2013-05-09 10:44  文武双全大星星  阅读(372)  评论(0编辑  收藏  举报