Erlang Rebar 使用指南之一:入门篇
Erlang Rebar 使用指南之一:入门篇
全文目录:
https://github.com/rebar/rebar/wiki
本章原文:
https://github.com/rebar/rebar/wiki/Getting-started
Rebar 是功能丰富的 Erlang 构建工具。用于Erlang/OTP项目的编译,测试,依赖管理,打包发布等。
Rebar 是自包含的脚本,可以方便地嵌入到项目中。
1 编译 rebar
$ git clone git://github.com/rebar/rebar.git
$ cd rebar
$ ./bootstrap
查看命令说明:
$ ./rebar -c
$ ./rebar help clean
2 入门例子
2.1 创建一个程序目录
$ mkdir myapp
$ cd myapp
把 “1 编译 rebar” 得到的 rebar 复制到myapp目录中
$ cp ../rebar/rebar .
2.2 创建第一个rebar项目
$ ./rebar create-app appid=myapp
$ touch rebar.config
上面命令执行后,在myapp/src生成了3个文件:
myapp.app.src - OTP应用资源
myapp_app.erl - 一个实现 OTP application behaviour
myapp_sup.erl - 最顶层的 OTP Supervisor behaviour
2.3 编译项目
$ ./rebar compile
上面命令执行后,生成ebin目录,包含与src/erl文件对应的.beam文件.
src/myapp.app.src 生成 ebin/myapp.app
清理项目
$ ./rebar clean
2.4 测试项目
Rebar 支持 EUnit和Common Test测试框架。给项目增加 EUint 单元测试, 增加下面的代码到
src/myapp_app.erl:
-export([start/2, stop/1]). 后面添加:
%% eunit testing
-ifdef(TEST).
-include_lib("eunit/include/eunit.hrl").
-endif.
在文件末尾添加:
%% eunit testing
-ifdef(TEST).
simple_test() ->
ok = application:start(myapp),
?assertNot(undefined == whereis(myapp_sup)).
-endif.
ifdef 宏指示测试阶段代码,不会编译进产品中。
开始编译和测试:
$ ./rebar compile eunit
上面的命令将编译2次,一次输出到ebin/,一次输出到.eunit/:
==> myapp (compile)
Compiled src/myapp_app.erl
Compiled src/myapp_sup.erl
==> myapp (eunit)
Compiled src/myapp_sup.erl
Compiled src/myapp_app.erl
Test passed.
=INFO REPORT==== 30-Nov-2014::03:50:01 ===
application: myapp
exited: killed
type: temporary
2.5 测试代码覆盖率统计
在myapp/rebar.config中加入下面的行:
{cover_enabled, true}.
再次运行:
$ rebar compile eunit
生成的统计页面在:.eunit/index.html
Erlang Rebar 使用指南之一:入门篇的更多相关文章
- Erlang Rebar 使用指南之四:依赖管理
Erlang Rebar 使用指南之四:依赖管理 全文目录: https://github.com/rebar/rebar/wiki 本章链接: https://github.com/rebar/re ...
- Erlang Rebar 使用指南之三:Rebar和OTP程序约定和命令
Erlang Rebar 使用指南之三:Rebar和OTP程序约定和命令 全文目录: https://github.com/rebar/rebar/wiki 本章位置: https://github. ...
- Erlang Rebar 使用指南之二:制作发布版本
Erlang Rebar 使用指南之二:制作发布版本 全文目录: https://github.com/rebar/rebar/wiki 本章位置: https://github.com/rebar/ ...
- Java工程师学习指南(入门篇)
Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
- 《Ossim应用指南》入门篇
Ossim应用入门 --在<OSSIM在企业网络管理中的应用>http://chenguang.blog.51cto.com/350944/802007 这篇文章发布之后,很多同行对oss ...
- 【OpenCV入门指南】第一篇 安装OpenCV
http://blog.csdn.net/morewindows/article/details/8225783/ win10下vs2015配置Opencv3.1.0过程详解(转) http://ww ...
- Java工程师学习指南 入门篇
Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
- 1. web前端开发分享-css,js入门篇
关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人与人的教育背景与成长环境心理活动都有差别,但就别人的心得再结合自己的特点,然后探索适合自己的学 ...
- ant使用指南详细入门教程
这篇文章主要介绍了ant使用指南详细入门教程,本文详细的讲解了安装.验证安装.使用方法.使用实例.ant命令等内容,需要的朋友可以参考下 一.概述 ant 是一个将软件编译.测试.部署等步骤联系在一起 ...
随机推荐
- Thread 方法
Thread类的一些被Thread对象调用的方法: 1 public void start() 使该线程开始执行:Java 虚拟机调用该线程的 run 方法. 2 public void run() ...
- Java使用BigDecimal保留double、float运算精度、保留指定位数有效数字、四舍五入
工具类 package --; import java.math.BigDecimal; /** * Created by kongqw on 2015/12/10. */ public final ...
- ORACLE时间日期格式使用总结(参考网上资料汇总)
Oracle时间日期操作 sysdate+(5/24/60/60) 在系统时间基础上延迟5秒 sysdate+5/24/60 在系统时间基础上延迟5分钟 sysdate+5/24 在系统时间基础上延迟 ...
- java详解final、多态、抽象类、接口原理
1:final关键字(掌握) (1)是最终的意思,可以修饰类,方法,变量. (2)特点: A:它修饰的类,不能被继承. B:它修饰的方法,不能被重写. C:它修饰的变量,是一个常量. (3)面试相关: ...
- #VSTS日志# Xamarin构建支持和一大波更新
距离上次更新#VSTS日志#已经有将近3个月的时间了,赶上最近Xamarin开源免费的消息,VSTS也推出了更多跨平台的支持和许多其他功能.这里列出一些小编觉得比较重要. 1. Xamarin 构建模 ...
- 如何向android studio中导入第三方类库
下面分两种情况介绍一下如何导入第三方类库. 1.对于jar的类库,直接复制进libs目录,然后把jar复制进去,然后File->Project Structure,然后选中主module的名称, ...
- Cocos2Dv3.4在AppDelegate中不返回的情况及解决
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们通常想在app启动的早期做一些事情,可能放在AppDeleg ...
- UNIX网络编程——TCP长连接与短连接的区别
一.TCP短连接 我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接.client向server发送消息,server回应client,然后 ...
- Jeff Atwood:软件工程已死?
原文作者:Jeff Atwood 2009年7月,Tom DeMarco在<IEEE Software>杂志上发表了一篇论文,题为"Software Engineering: A ...
- 【一天一道LeetCode】#100. Same Tree(100题大关)
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given t ...