Rebar概述

Rebar是一款Erlang构建工具,使用它可以方便的编译,测试erlang程序和打包erlang发行版本。Rebar其实是一个独立的erlang脚本,默认情况下,Rebar会按照Erlang/OTP来组织项目结结构,构建时的配置工作量很少。同时rebar提供依赖(包)管理机制,方便程序员重用已存在的模块。依赖管理机制支持GIT方式。

安装rebar

rebar已经托管到了github上,下载地址:https://github.com/rebar/rebar/releases,使用版本为2.6.4。
解压后进入rebar目录.cd  rebar,
执行如下指令:./bootstrap,生成rebar执行文件。
把rebar放入到/usr/local/bin,ldconfig生效。
执行指令:rebar version 如下所示即为成功。



构建项目

项目名为:mqtt
mkdir   mqtt
cd mqtt 执行rebar指令 rebar create-app appid=mqtt

此时生成src目录,该目录下分别生成如下文件:

1.mqtt_app.erl
2.mqtt_sup.erl
3.mqtt.app.src

编译项目

执行指令如下:
rebar compile

根目录下生成ebin文件夹,该目录下生成beam和.app文件如下:
1.mqtt.app
2.mqtt_app.beam
3.mqtt_sup.beam

清楚编译后的文件:
rebar clean

Erlang:[笔记一,构建工具rebar之编译]的更多相关文章

  1. Erlang:[笔记三,构建工具rebar之使用依赖]

    概述 类似Java中的Maven,Gradle,在Erlang中同样也有包管理的工具,Rebar提供Erlang依赖(包)管理机制,开发人员可以重复使用已有的模块,通过rebar引入自己的项目直接使用 ...

  2. Erlang:[笔记二,构建工具rebar之发布应用]

    概述 通过rebar可以发布rebar构建的erlang项目,生成可执行的二进制脚本文件,大大降低了执行应用的复杂度.该笔记Erlang环境为Erlang/OTP 19 ,以下适用于Eralng/OT ...

  3. js构建工具和预编译

    Gulp应该和Grunt比较,他们的区别我就不说了,说说用处吧.Gulp / Grunt 是一种工具,能够优化前端工作流程.比如自动刷新页面.combo.压缩css.js.编译less等等.简单来说, ...

  4. Rebar:Erlang构建工具

    Rebar是一款Erlang的构建工具,使用它可以方便的编译.测试erlang程序.内联驱动和打包Erlang发行版本. Rebar是一个独立的erlang脚本,所以使用Rebar发布程序非常简单,甚 ...

  5. 学习笔记——Maven实战(六)Gradle,构建工具的未来?

    Maven面临的挑战 软件行业新旧交替的速度之快往往令人咂舌,不用多少时间,你就会发现曾经大红大紫的技术已经成为了昨日黄花,当然,Maven也不会例外.虽然目前它基本上是Java构建的事实标准,但我们 ...

  6. 前端自动化构建工具 gulp 学习笔记 一、

    一.我对gulp的初期理解 是一种前端辅助开发工具 可以帮你把js,css,img等文件 合并.压缩,图片好像是合并为精灵图,合并为精灵图之后,还会生成一个css样式表. 官方解说是:基于流的自动化构 ...

  7. Nodejs编译Native Code:使用C++构建工具npm

    Nodejs的很多NPM包需要本地编译,通常是C++写的代码,例如图像处理模块等. 这是如果生产环境没有安装Visual Studio 2015等开发工具,通常会编译失败,发现了一个npm专门干这事儿 ...

  8. 【构建工具】《Maven实战》读书笔记

    Maven是我们在做Java开发过程中用经常用到的一个辅助工具.本篇博客是我学习Maven的一个记录博客,学习过程主要参考<Maven实战>这本书.同时也参考了Maven的官方文档. 1. ...

  9. Android(java)学习笔记157:使用Dexdump等工具进行反编译

    使用Dex等工具进行反编译步骤: (1)首先找到Android软件安装包中的class.dex,把APK文件改名为".zip",然后解压缩其中的class.dex文件,这是Java ...

随机推荐

  1. C语言应用--数据类型定制一结构体数组

    结构体定义成功后,其实和c语言内部的类型区别也不大了,自然可以用来定义结构体类型的数组了.我们根据结构体定义的方式不同,分别用多种方式定义结构体数组:

  2. python文件导出exe可执行程序

    开门见山的说: 1.安装pyinstaller.(windows 用pip3 Mac 用pip)在cmd中输入:pip3 install pyinstaller 2.找到你要打包的文件的目录的上一个目 ...

  3. OpenJudge计算概论-分数求和

    /*====================================================== 1006:分数求和 总时间限制: 1000ms 内存限制: 65536kB 描述 输入 ...

  4. O(n) O(log n) blist: an asymptotically faster list-like type for Python

    https://pypi.org/project/blist/ blist: an asymptotically faster list-like type for Python — blist 1. ...

  5. android studio: no idea annotations attached to the jdk 1.8 some issues will not be found

    Android Studio今天早上打开项目提示错误信息: No IDEA annotations attached to the JDK 1.8 (C:\Program Files\Android\ ...

  6. JavaScript Functional Programming:声明式与命令式

    函数式编程属于声明式编程(declarative programming)的范畴,经常跟声明式编程一块儿讨论的是命令式编程(imperative programming),因为它们是两种不太一样的风格 ...

  7. 【416】Ubuntu 配置

    修改桌面主题:How to Install Desktop Themes on Ubuntu 18.04 LTS 命令行显示短路径:怎样ubuntu下命令行终端显示短路径 gedit 扩展插件:Use ...

  8. 数据结构与算法 Javascript描述

    数据结构与算法系列主要记录<数据结构与算法 Javascript描述>学习心得

  9. JEECG中修改时间相关自定义定时器

    JEECG中使用,如下: @InitBinder public void initBinder(ServletRequestDataBinder binder) { binder.registerCu ...

  10. 【Leetcode_easy】665. Non-decreasing Array

    problem 665. Non-decreasing Array 题意:是否能够将数组转换为非减数组. solution: 难点在于理解如何对需要修改的元素进行赋值: class Solution ...