文档章节

rebar3文档翻译—基本用法

影狼
 影狼
发布于 2017/02/16 13:09
字数 915
阅读 343
收藏 0
点赞 0
评论 0
  1. 新应用或发行版
    1. rebar3提供了创建应用、库应用(没有start/2)、发行版和插件的模板。使用new命令利用一个模板创建一个项目。 new默认接受lib,app,release和plugin作为第一个参数,项目名称作为第二个参数。
    2. shell
      1. rebar3 new app myapp
      2. ===> Writing myapp/src/myapp_app.erl
        ===> Writing myapp/src/myapp_sup.erl
        ===> Writing myapp/src/myapp.app.src
        ===> Writing myapp/rebar.config
        ===> Writing myapp/.gitignore
        ===> Writing myapp/LICENSE
        ===> Writing myapp/README.md
    3. 有关更多的关于new命令的信息和参数请查看有关命令的文档,并了解如何创建和使用自定义模板。
  2. 添加依赖关系
    1. 依赖被列在rebar.config文件的deps键下
    2. {deps, [
              {cowboy, "1.0.1"}, % package
        {cowboy, {git, "git://github.com/ninenines/cowboy.git", {tag, "1.0.1"}}} % alternatively, source
              ]
      }.
    3. 现在,您可以在应用程序下将dep添加到您项目的应用程序的.app.src文件中,以便Erlang知道你的项目运行需要哪些依赖关系
    4. {application, <APPNAME>,
       [{description, ""},
        {vsn, "<APPVSN>"},
        {registered, []},
        {modules, []},
        {applications, [
                       kernel
                       ,stdlib
                       ,cowboy
                       ]},
        {mod, {<APPNAME>_app, []}},
        {env, []}
       ]}.
    5. 有关依赖性处理的更多信息, 请参阅依赖性文档
  3. 编译
    1. 只有一个命令,compile,需要获取依赖并且编译所有的应用程序
    2. shell
      1. rebar3 compile
      2. ==> Verifying dependencies...
        ==> Fetching cowboy
        ==> Fetching ranch
        ==> Fetching cowlib
        ==> Compiling cowlib
        ==> Compiling ranch
        ==> Compiling cowboy
        ==> Compiling myapp
    3. 依赖关系始终会被获取
      1. rebar3不同于以前的版本,当运行一个命令如compile,如果找不到依赖项,则会获取和编译依赖项。这是通过提供程序依赖关系实现的,你可以在插件教程中了解相关资料。
  4. 输出格式
    1. 用于安装依赖项、构建版本和其他任何的写入磁盘的输出位于根目录下的_build目录中。
    2. shell
      1. _build/
        1. default
          1. lib
            1. cowboy
            2. cowlib
            3. ranch
    3. 有关配置文件和_build目录的更多信息,请参阅配置文件文档页面
  5. 测试
    1. 默认情况下,测试将在test目录下找到,除了eunit被发现在个别模块
    2. 运行测试所需的配置文件可以放在test配置文件中
    3. {profiles, [
                 {test, [{deps, [
                                {meck,
                              {git, "git://github.com/eproxus/meck.git", {tag, "0.8.2"}}}
                                ]}
                        ]}
                 ]
      }.
    4. 第一次使用rebar3 ct运行meck将会安装到_build/test/lib目录中,但不会添加到rebar.lock文件中
    5. shell
      1. _build
        1. test
          1. lib
            1. meck
  6. 发布目标系统
    1. 发布使用relx构建
    2. 创建一个具有发布结构和rebar.config文件中默认relx配置文件的新项目运行
      1. shell
        1. rebar3 new release myrel
        2. ===> Writing myrel/apps/myrel/src/myrel_app.erl
          ===> Writing myrel/apps/myrel/src/myrel_sup.erl
          ===> Writing myrel/apps/myrel/src/myrel.app.src
          ===> Writing myrel/rebar.config
          ===> Writing myrel/config/sys.config
          ===> Writing myrel/config/vm.args
          ===> Writing myrel/.gitignore
          ===> Writing myrel/LICENSE
          ===> Writing myrel/README.md
    3. 查看rebar.config,我们发现一些我们的应用程序示例中不存在的元素
      1. {relx, [{release, {myrel, "0.0.1"},
                 [myrel]},
                {dev_mode, true},
                {include_erts, false},
                {extended_start_script, true}
               ]
        }.
        {profiles, [
                   {prod, [{relx, [{dev_mode, false},
                                   {include_erts, true}]}]}
                   ]
        }.
    4. 这个配置提供了一些好的默认值,用于使用relx为构建一个 开发(默认配置文件) 版本和 生产(prod配置文件) 版本。当构建一个生产版本时,我们很可能想创建一个目标系统(包括erts),绝不希望发布包含到应用程序的符号链接(dev_mode false)。
      1. shell
        1. rebar3 release
        2. ===> Verifying default dependencies...
          ===> Compiling myrel
          ===> Starting relx build process ...
          ===> Resolving OTP Applications from directories:         
                    _build/default/lib
                    /usr/lib/erlang/lib
          ===> Resolved myrel-0.1.0
          ===> Dev mode enabled, release will be symlinked
          ===> release successfully created!
    5. 使用默认的rebar.config,创建版本的压缩归档作为目标系统,就像将配置文件设置成prod并运行tar一样简单
      1. shell
        1. rebar3 as prod tar
        2. ===> Verifying default dependencies...
          ===> Compiling myrel
          ===> Starting relx build process ...
          ===> Resolving OTP Applications from directories:
                    .../myrel/apps
                    /usr/lib/erlang/lib
          ===> Resolved myrel-0.1.0
          ===> Including Erts from /usr/lib/erlang
          ===> release successfully created!
          ===> tarball myrel/_build/rel/myrel/myrel-0.1.0.tar.gz successfully created!
  7. 有关更多细节,请查阅发行版部分

© 著作权归作者所有

共有 人打赏支持
影狼
粉丝 8
博文 94
码字总数 46508
作品 0
海淀
程序员
rebar3的一些参考文档

刚使用rebar3,功能太多,各种命令不会用。网上找了一些资料: rebar3的官网,有指定的文档,命令例子都有,入门必备: rebar官网 然后使用流程介绍,这里介绍了一些使用案例和为什么这样做的...

格通 ⋅ 2016/03/25 ⋅ 0

收藏的博客 -- erlang学习

一、技术博客 http://blog.csdn.net/erlib 为什么我要选择erlang+go进行服务器架构(1) 为什么我要选择erlang+go进行服务器架构(2) http://www.qingliangcn.org/ https://github.com/qinglian...

libaineu2004 ⋅ 2017/09/14 ⋅ 0

【读书笔记】"Erlang In Anger" Erlang应用的错误调试

全书 封面不明觉厉 这本书很薄,只有93页,而且是免费的,有兴趣的朋友可以去看一看。虽然书中没有提到Elixir,但对于学习Elixir也很有帮助。这本书适合对Erlang和OTP有初步了解的人阅读。书...

ljzn ⋅ 2016/09/26 ⋅ 1

kafka系列文章索引

apache kafka在数据处理中特别是日志和消息的处理上会有很多出色的表现,这里写个索引,关于kafka的文章暂时就更新到这里,最近利用空闲时间在对kafka做一些功能性增强,并java化,虽然现在已...

Gaischen ⋅ 2013/03/25 ⋅ 7

kafka系列文章索引(结束)

apache kafka在数据处理中特别是日志和消息的处理上会有很多出色的表现,这里写个索引,关于kafka的文章暂时就更新到这里,最近利用空闲时间在对 kafka做一些功能性增强,并java化,虽然现在...

老先生二号 ⋅ 2017/05/28 ⋅ 0

我的Pycharm,我做主

  之间花了一周多的时间把Pycharm官方帮助文档翻译了一遍,一共43篇博客,累得要屎,感悟颇多。   发牢骚之前先总结点干货,这里把所有的翻译文档列成如下目录,方便大家索引:   最全...

u013088062 ⋅ 2015/12/23 ⋅ 0

ReactiveCocoa 4 文档翻译目录

文/没故事的卓同学(简书作者) 原文链接:http://www.jianshu.com/p/fccba7be1ca1 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。 因为决定不再支持iOS7,全面使用Swift...

上官尘 ⋅ 2016/03/02 ⋅ 0

为了方便发布tar,rebar3要适应relx迁移include目录到src目录

使用rebar3打tar包,十分方便。其中rebar3使用relx打包,relx里面有下面的选项,可以在打包的时候,不打包src目录,方便在发布的时候,不发布src里面的源码文件: 参考:relx Configuration ...

格通 ⋅ 2016/09/30 ⋅ 0

NiuTrans 1.0.0 Beta 发布,统计机器翻译平台

在当今Google翻译横行天下的时代,国内终于有人向他们提出了挑战,发出了第一声响亮的呐喊!!!!(不要拍我。。。) NiuTrans开源统计机器翻译平台于2011年7月首次对外发布基于短语的翻译引...

zhanghao1216 ⋅ 2012/07/09 ⋅ 2

rebar3发布,归属权更新到erlang团队了

rebar3的beta 4发布很久了,一直奇怪为啥没有发布3.0稳定版。今天一看,不但发布了3.0 stable版本,而且github的地址也改了,由github.com/rebar/rebar3 改为 github.com/erlang/rebar3 了,...

格通 ⋅ 2016/03/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

AppDelegate 设置Root相关

self.window = UIWindow.init(frame: UIScreen.main.bounds) self.window?.backgroundColor = UIColor.white self.window?.makeKeyAndVisible() self.window?.rootViewController = RootTabB......

west_zll ⋅ 22分钟前 ⋅ 0

Java并发系列5--倒计时器CountDownLatch

今天讲一个倒计时器工具,叫CountDownLatch。需要这个工具的场景大概有:当所有的小任务都完成之后,再启动大任务。 先看代码: public class CountDownLatchDemo {static final CountDow...

大大枣 ⋅ 23分钟前 ⋅ 0

SpreadJS使用进阶指南 - 使用 NPM 管理你的项目

前言 SpreadJS作为一款性能出众的纯前端电子表格控件,自2015年发布以来,已经被广泛应用于各领域“在线Excel”数据管理项目中。NPM,作为管理Node.js库最有力的手段,解决了很多NodeJS代码部...

葡萄城控件技术团队 ⋅ 24分钟前 ⋅ 0

Mac下IntelliJ IDEA快捷键大全

https://blog.csdn.net/lisongjia123/article/details/54949364

细节探索者 ⋅ 27分钟前 ⋅ 0

建造者模式

1、工厂模式中创建的对象大都是简单的对象 复杂的产品类并且拥有不同的属性特点的管理就需要用到建造者模式 2、建造者模式: 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以...

职业搬砖20年 ⋅ 28分钟前 ⋅ 0

Mysql数据库开发 怎么优化SQL语句?

 1) 现场抓出慢查询语句 show full processlist;   2) 配置参数:   slow_query_log_file = ON 慢查询开启开关   long_query_time =2 记录大于2秒的sql语句   log_queries_not_usi...

老男孩Linux培训 ⋅ 29分钟前 ⋅ 0

Laravel 安装执行php artisan migrate 出现字段过长错误

最近在自己研究Laravel Laravel版本:5.6 PHP版本:7.1.9 Mysql版本:5.7.19 Apache版本:2.4.27 系统版本:windows10 首先要保证电脑安装了composer,和node.js 执行命令 composer global ...

Marhal ⋅ 34分钟前 ⋅ 0

ELK6.0日志从收集到处理完整版教程(二)

ELK简介 Elasticsearch 开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。也可以认为ElasticSearch是一...

bz_z ⋅ 37分钟前 ⋅ 0

Spark项目之电商用户行为分析大数据平台之(七)数据调研--基本数据结构介绍

目录 一、user_visit_action(Hive表) 1.1 表的结构 1.2 表的说明 二、user_info(Hive表) 2.1 表的结构 2.2 表的说明 三、task(MySQL表) 3.1 表的结构 3.2 表的说明 四、工作流程...

xiaomin0322 ⋅ 42分钟前 ⋅ 0

评分卡模型剖析之一(woe、IV、ROC、信息熵)

信用评分卡模型在国外是一种成熟的预测方法,尤其在信用风险评估以及金融风险控制领域更是得到了比较广泛的使用,其原理是将模型变量WOE编码方式离散化之后运用logistic回归模型进行的一种二...

火力全開 ⋅ 42分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部