0.rebar是一个用于构建erlang工程的强大工具.文档也非常详尽.

可以方便的编译测试发布erlang工程.rebar管理的erlang工程应该遵循erlang OTP的约定,项目的文件结构如下,

app          %% 自定义
ebin         %% 编译文件
include      %% 源代码或hrl文件
priv         %% lib库文件 
src          %% 源代码
test         %% 测试文件
rebar.config %% 配置文件,没有也能被rebar编译

1.安装rebar,将其拷贝到bin目录下,使其在任何地方都可以使用。

➜ git clone git://github.com/basho/rebar.git
➜ cd rebar
➜ ./bootstrap
➜ cp rebar /usr/bin

2.创建rebar工程,会生成src

➜ mkdir rebar_test
➜ cd rebar_test 
➜ rebar create-app appid=rebar_test
%% 会自动生成3个文件
src/rebar_test.app.src
src/rebar_test_app.erl
src/rebar_test_sup.erl

3.编译,生成ebin文件夹下的beam文件

➜ rebar compile
ebin/rebar_test.app
ebin/rebar_test_app.beam
ebin/rebar_test_sup.beam

4.清理,清除beam文件

➜ rebar clean

5.创建server,rebar内置了gen_server、gen_fsm、application 等

➜ rebar create template=simplesrv srvid=rebar_test_server
src/rebar_test_server.erl

6.测试,在test目录下创建rebar_test_test.hrl,并添加以下内容,运行测试

➜ mkdir -p test

rebar_test_test.hrl:
-include_lib("eunit/include/eunit.hrl").
my_test() ->
	?assert(1 + 1 =:= 2).

➜ rebar compile eunit

7.发布,创建rel目录,在工程目录下创建rebar.config,添加内容.

➜ mkdir -p rel
➜ cd rel
➜ rebar create-node nodeid=rebar_test

rebar.config:
{sub_dirs, ["rel"]}.

%% 编译,生成,开始,停止,带控制台的启动
➜ rebar compile
➜ rebar generate
➜ rel/rebar_test/bin/rebar_test start
➜ rel/rebar_test/bin/rebar_test stop 
➜ rel/rebar_test/bin/rebar_test console

8.generate错误:{“init terminating in do_boot”,{‘cannot load’,hipe,get_file}}

解决方案:Erlang之hipe