文档章节

rebar3文档翻译—基本用法

易冥天
 易冥天
发布于 2017/02/16 13:09
字数 915
阅读 395
收藏 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. 有关更多细节,请查阅发行版部分

© 著作权归作者所有

共有 人打赏支持
易冥天
粉丝 30
博文 140
码字总数 70939
作品 0
海淀
程序员
私信 提问
rebar3的一些参考文档

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

格通
2016/03/25
50
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
0
kafka系列文章索引(结束)

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

老先生二号
2017/05/28
0
0
【读书笔记】"Erlang In Anger" Erlang应用的错误调试

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

ljzn
2016/09/26
29
1
为了方便发布tar,rebar3要适应relx迁移include目录到src目录

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

格通
2016/09/30
32
0

没有更多内容

加载失败,请刷新页面

加载更多

tomcat shutdown.sh不能完合关掉tomcat进程的解决方法

tomcat shutdown.sh不能完合关掉tomcat进程的解决方法 2017年06月30日 17:18:16 redlevin 阅读数:5311 标签: tomcatjava 1、在tomcat/bin/shutdown.sh文件中增加一个参数 原来的 exec...

linjin200
3分钟前
0
0
动态代理

//业务类接口public interface ICar { String getName();} //业务类实现public class CarImpl implements ICar { @Override public String getName() { S......

stocket
12分钟前
0
0
dubbo架构相关知识学习

dubbo架构分为十层: Service:接口层,提供服务端以及客户端实现,类ServiceBean和ReferenceBean Config:配置层,ServiceConfig和ReferenceConfig,从dubbo.xsd中属性依赖如下,我们可以看出s...

zzx10
12分钟前
0
0
devops平台搭建

一份可以同时满足传统与互联网业务的Dev平台攻略

miaojiangmin
14分钟前
0
0
windows server 2019添加开机启动项

windows server 2012以上的版本(2016,2019)在开始菜单中找不到“启动”,如果写了个bat批处理文件,如何能开机启动呢?可以打开文件资源管理器,把下面的位置粘贴到地址栏后回车。将bat文...

gugudu
14分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部