安装

方法一:源码安装

$ git clone https://github.com/erlang/rebar3.git
$ cd rebar3
$ ./bootstrap

方法二:点击「链接」直接下载

https://s3.amazonaws.com/rebar3/rebar3

方法三:直接从其他项目中拷贝

项目说明

新建项目命令

//1新建一个简单app项目
$ rebar3 new app <projName>
//2新建一个多app项目
$ rebar3 new release <projName>
//3新建一个简单app项目
$ rebar3 new lib <projName>
//4新建一个rebar插件
$ rebar3 new plugin <projName>

app项目结构

$> rebar3 new app projApp├── LICENSE
├── README.md
├── rebar.config
└── src├── projApp.app.src├── projApp_app.erl└── projApp_sup.erl

release项目结构

$> rebar3 new release projRel├── LICENSE
├── README.md
├── apps
│   └── projRel
│       └── src
│             ├── projRel.app.src
│             ├── projRel_app.erl
│             └── projRel_sup.erl
├── config
│   ├── sys.config
│   └── vm.args
└── rebar.config

PS:看文件目录就能大体看出,这两个的区别,app类型项目主要是简单的项目,而release项目多了个apps目录,此目录下可以有多个Erlang的application,可以处理复杂项目

lib项目

├── LICENSE
├── README.md
├── rebar.config
└── src├── projLib.app.src└── projLib.erl

plugin项目

说明:代码格式与app相同,但它有一套它自己的实现方式,具体实现留到以后来做

编译运行

以上把新建这块大体说完了,下面以release类项目为实例,具体分析
执行

$> rebar3 compile

编译成功,会生成一个新文件夹_build

├── _build
│   └── default
│       └── lib
│           └── projRel
│               ├── ebin
│               │   ├── projRel.app
│               │   ├── projRel_app.beam
│               │   └── projRel_sup.beam
│               ├── include -> ../../../../apps/projRel/include
│               ├── priv -> ../../../../apps/projRel/priv
│               └── src -> ../../../../apps/projRel/src

文件目录说明

deps默认目录:
_build/default/lib
release默认目录:
_build/default/rel
test默认目录:
_build/test/lib

常见命令

//查看依赖树
$ rebar3 tree
//查看依赖 $ rebar3 deps
//release所有app
$ rebar release//release指定app
$ rebar3 release -n <release_name>//按指定配置release
$ rebar3 as prod tar 

配置文件实例

{erl_opts, [debug_info,{i, "./include"}  % 指定include文件目录,{d, 'NOTEST', true}   %,{parse_transform, lager_transform}  %lager专用]}.% {deps_error_on_conflict, true}. // 增加这句,依赖有冲突时,会中止
{rebar_packages_cdn, "https://hexpm.upyun.com"}.  % package中国镜像{plugins, [  %% 插件% .dtl格式文件插件{rebar3_erlydtl_plugin, ".*",{git, "https://github.com/tsloughter/rebar3_erlydtl_plugin.git", {branch, "master"}}}
]}.{deps, [{apns,    {git, "git@github:zhaoweiguo/apns.git"}},{eredis, {git, "https://github.com/wooga/eredis.git", {tag, "v1.1.0"}}},{brod, {git, "https://github.com/klarna/brod.git", {tag, "3.4.0"}}}... ...
]}.{erlydtl_opts,[ % erlydtl插件相关配置{doc_root, "templates"}%,{compiler_options, [report, return, debug_info]}
]}.
{provider_hooks, [  %% hook钩子{pre, [{compile, {erlydtl, compile}}]}  % 执行rebar3 compile时先执行rebar3 plugin compile
]}.{relx, [{release, {octopus, "0.1.0"},[octopus,... ...sasl]},{sys_config, "./config/octopus.config"},{vm_args, "./config/vm.args"},{dev_mode, false}, % 开发模式{include_erts, false},  % 编译时是否包含erts库
%%  {exclude_modules, [{
%%    syntax_tools, [merl, merl_transform]
%%  }]},{extended_start_script, true}
]}.{profiles, [{ % 配置相关,同一rebar.config可以生成多种不同版本,如release, default, debug等prod, [{erl_opts
%      ,[no_debug_info, warnings_as_errors]   % [注意]加此句,有warning不能通过,[no_debug_info]},{relx, [{dev_mode, false},    % 用于修改上面relx顶层目录的配置{include_erts, true}]}]
}]
}.

Erlang:Rebar3的简单使用相关推荐

  1. java erlang 游戏_游戏中最近可达点(用erlang写一个简单算法)

    游戏中有点击障碍点,人物走到离障碍物最近点的算法.我这给一个简单的算法,这个问题可以复杂化,另外这个问题应该由客户端来完成. 如图,玩家在b点,点击了a点,a在一个障碍区(红色,玩家只能在障碍区外移到 ...

  2. Erlang Observer的简单使用

    该工具为观察Erlang系统的GUI图形化界面工具,在Erlang的新版本中广泛使用,工具包含多项监控,包括系统信息.应用程序管理树.进程信息.ETS/进程字典/Mnesia表等信息.文末包括linu ...

  3. erlang mnesia数据库简单应用

    mnesia是erlang自带的分布式数据库,基于ets和dets实现的.mnesia兼顾了dets的持久性和ets的高性能,可以自动在多个erlang节点间同步数据库.最关键的是,mnesia实现了 ...

  4. rebar3简单使用

    系统 :win7 erlang:Erlang/OTP 22 Erts 10.7 rebar3 :rebar 3.13.1 环境搭建详见: Erlang windows下安装 rebar3 window ...

  5. rebar3 简单使用

    最近想尝试用下rebar,在rebar的github主页发现 rebar已经被抛弃了,那么就按建议说的使用rebar3 吧 Deprecated Erlang build tool that make ...

  6. 基于Erlang语言的视频相似推荐系统 | 深度

    作者丨gongyouliu 来源 | 转载自大数据与人工智能(ID:ai-big-data) [导语]:作者在上一篇文章<基于内容的推荐算法>中介绍了基于内容的推荐算法的实现原理.在本篇文 ...

  7. Erlang 数据类型。。

    2019独角兽企业重金招聘Python工程师标准>>> 数值 二进制串/位串 原子 元祖 列表 唯一标识符(pid,端口,引用) Fun 函数 Erlang 中的数据通常被称作项式 ...

  8. Erlang/OTP设计原则(文档翻译)

    http://erlang.org/doc/design_principles/des_princ.html 图和代码皆源自以上链接中Erlang官方文档,翻译时的版本为20.1. 这个设计原则,其实 ...

  9. Centos安装rebar3

    源码编译安装 1.安装git yum install git 2.获取源码 git clone https://github.com/erlang/rebar3.git 3.编译 cd rebar3 ...

最新文章

  1. 从实现iPhone的OAuth封装看国内互联网和开放平台
  2. FPGA锁存器、触发器、寄存器和缓冲器的区别
  3. Code First 数据库的表中属性的配置
  4. 编程之美2.1 求二进制中1的个数
  5. C++求最小公倍數LCM的实现算法(附完整源码)
  6. 【小技巧】【map】【set】【Java】map /set 的遍历
  7. Android获取手机号归属地
  8. HyperLedger Fabric 节点(Orderer、Peer、Commiter)与channel关系
  9. 安徽大学836数字电路与逻辑设计考研历年真题库资料
  10. 渠道类:新APP上线都有哪些具体的推广方式可以学习(最新)
  11. 计算机电源复位,关于Apple本本的电池复位(重置电源管理、电池重置)方法
  12. 页面关闭时postback,导致IE假死的分析
  13. python黑色变白色_在OpenCV python中将白色像素转换为黑色
  14. php跌涨算法,php砍价算法
  15. 英文字体设计标志需要注意什么?
  16. 一篇不错的关于VSS的入门介绍
  17. Appstore评分数据python实战
  18. 分享点22年计算机考研经验(反面)
  19. python程序运行时间计时
  20. python networkx 边权重_Python / NetworkX:通过边缘发生频率向边缘添加权重

热门文章

  1. string类 string.h头文件 cstring头文件区别以及读取一行字符串总结
  2. Java编程之学生类
  3. 有趣的心理学实验——斯特鲁普效应
  4. 网络体系之TCP/IP模型
  5. 安装中文版 portainer-ce
  6. 快速、高效的从excel表的地址中提取省、市
  7. console连接h3c s5500_H3C设备通过Console口登录设备的配置方法介绍
  8. 这里稍稍记录一下null和undefined
  9. python小项目之淘宝秒杀
  10. K_A08_003 基于 STM32等单片机驱动L9110模块按键控制直流电机正反转加减速启停