ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

rebar3编译及发布erlang程序

2021-06-05 20:33:06  阅读:287  来源: 互联网

标签:relx 依赖 app 应用程序 编译 rebar3 release erlang


确保已经安装erlang/OTP和rebar3,否则,可参考本人的“centos7安装erlang/otp”、“centos7安装rebar3”博文完成安装

【1】生成
rebar3为每种类型的项目都提供了模板,通过rebar3 new <template> <project-name>命令使用。

    <template>的取值
        app: 一个有监督树、有状态的OTP应用程序,是一个单应用程序
        lib: 一个OTP依赖(无监督树),与其他模块联合使用,是一个单应用程序
        release: 创建一个大型项目
        escript: 一个特殊格式的单应用项目,可以编译为一个可执行的脚本程序
        plugin: rebar3插件结构

    shell 命令举例

    rebar3 new app myapp
    
【2】配置依赖

    依赖被配置在rebar.config文件的deps下

{deps, [
    {cowboy, "1.0.1"}, % package
    {cowboy, {git, "git://github.com/ninenines/cowboy.git", {tag, "1.0.1"}}} % alternatively, source
    ]
}.

    添加依赖

    将依赖添加到您项目的应用程序的.app.src文件中,配置你的项目启动时需要用到的依赖。

{application, <APPNAME>,
 [{description, ""},
  {vsn, "<APPVSN>"},
  {registered, []},
  {modules, []},
  {applications, [
                 kernel
                 ,stdlib
                 ,cowboy
                 ]},
  {mod, {<APPNAME>_app, []}},
  {env, []}
 ]}.

【3】构建项目

    只有一个命令compile,就可以拉取应用需要的依赖并且编译整个应用程序

    shell 命令

    rebar3 compile


【4】生成系统

    使用relx构建生成

    创建一个应用程序,relx默认配置在rebar.config文件中

    rebar3 new release myrel
    

查看rebar.config文件,我们会发现生成了一些新的元素

{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}]}]}
    ]
}.


发布:
    cd relx
    rebar3 release


cd ./_build/default/rel/myrel/bin&&ls

标签:relx,依赖,app,应用程序,编译,rebar3,release,erlang
来源: https://blog.csdn.net/py8105/article/details/117605058

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有