rebar3文档翻译—基本用法
博客专区 > 影狼 的博客 > 博客详情
rebar3文档翻译—基本用法
影狼 发表于10个月前
rebar3文档翻译—基本用法
  • 发表于 10个月前
  • 阅读 326
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

  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. 有关更多细节,请查阅发行版部分
共有 人打赏支持
粉丝 7
博文 71
码字总数 35397
×
影狼
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: