rebar 使用测试【转】

来源:互联网 发布:mac bash 3.2解除密码 编辑:程序博客网 时间:2024/06/05 20:55

来自:http://blog.csdn.net/yangzm/article/details/51418148

rebar安装及创建项目 rebar作为erlang开发中编译,构建,发布,打包,动态升级的常用工具,下面我记录下rebar工具的安装及使用
从源码安装rebar 
1. 建立文件 install_rebar.sh
2. 拷贝如下shell到 install_rebar.sh

git clone git://github.com/rebar/rebar.gitcd rebar./bootstrapsudo cp rebar /usr/local/bin/

3. chmod u+ x install_rebar.sh
4. ./install_rebar.sh 等待安装完成
5. 安装完成启动shell  输入rebar -V 查看是否安装完成。
6 安装正确如下

thinkpad@thinkpad:~$ rebar -Vrebar 2.5.0 17 20140624_142144 git 2.5.0-dirty

7. 使用 rebar -c 查看rebar 常用命令
使用rebar 创建项目
1 .rebar create-app appid=game  创建app sup

==> demo (create-app)Writing src/game.app.srcWriting src/game_app.erlWriting src/game_sup.erl

2 . rebar create template=simplesrv srvid=game_server 创建 gen_server 行为模块

==> demo (create)Writing src/game_server.erl

3. 修改  game_sup 

-module(game_sup).-behaviour(supervisor).%% API-export([start_link/0]).%% Supervisor callbacks-export([init/1]).%% Helper macro for declaring children of supervisor-define(CHILD(I, Type), {I, {I, start_link, []}, permanent, 5000, Type, [I]}).%% ===================================================================%% API functions%% ===================================================================start_link() ->    supervisor:start_link({local, ?MODULE}, ?MODULE, []).%% ===================================================================%% Supervisor callbacks%% ===================================================================init([]) ->   %% 添加这行 一个完成的 包含监督 监控 重启 退出的项目 就完成    Child = ?CHILD(game_server,worker),    {ok, { {one_for_one, 5, 10}, [Child]} }.

4. 编译 返回到上一级目录也就是src目录,运行:./reabr compile   

==> demo (compile)Compiled src/game_app.erlCompiled src/game_server.erlCompiled src/game_sup.erlCompiled src/game.erl

 

5.  copy 一个测试用的例子,不一定是从gen_server继承过来的,hello.erl 内容是

///////////

-module(hello).
-export([start/0]).

start() ->
    io:format("Hello world~n").

///////////

修改game.app.src 如下所示:

{application, game,
 [
  {description, ""},
  {vsn, "1"},
  {modules,[game_app,game_sup,hello]}, %这是新增加的一行
  {registered, [hello]},   % hello 也是新增加的
  {applications, [
                  kernel,
                  stdlib
                 ]},
  {mod, { game_app, []}},
  {env, []}
 ]}.

保存。

6  erl -pa ebin 启动erlang shell  在shell 输入 application:start(game).

    运行:appmon:start(). 查看监控树 如下
  



7. 运行这个app,并调用测试我们的程序操作如下: 

cd ebin

erl

ls().

%这时进入了ebin 目录的erl 命令行了,再运行:

2> application:start(game).
ok
3> hello:start().
Hello world
ok


好了,这样就可以了。


0 0
原创粉丝点击