1-1.rebar3 构建新的工程

1.准备工作
IDEA编辑器,erlang 21.3,rebar3文件(github搜rebar3)
 
2.编辑器创建erlang项目
 
          
 
3.建立项目架构
  
_build:rebar3编译后自动生成的文件夹,里面包含release 和 编译后的文件
apps: 项目代码位置,lager_explanation为项目名
config: 里面包含sys.config(项目配置),以及vm.args(erlang虚拟机配置)
rebar3: rebar3本体文件
rebar.config: rebar3配置文件
后面细说各个结构里面的详细内容
 
4.rebar.config
%% rebar3 的日志
{erl_opts, [debug_info,
        {parse_transform, lager_transform}
]}.

%% 依赖库
{deps, [
%%       lager    使用这一种会从hex仓库拉代码,不建议使用,连接hex仓库非常不稳定
        {lager, ".*", {git, "https://github.com/erlang-lager/lager",{tag, "3.6.5"}}}
        ]
}.

%% release相关
{relx, [{release, {lager_explanation, "0.1.0" },[lager_explanation, sasl,mnesia,observer,runtime_tools,syntax_tools,tools]},
        {sys_config, "./config/sys.config"},   %% 系统日志
        {vm_args, "./config/vm.args"},         %% 系统的erlang 启动参数
        {dev_mode, true},                       %% 开发模式
        {include_erts, false},                  %% 是否包含erts库
        {include_src, false},                   %% 不包含代码源文件
        {extended_start_script, true}]
}.

{profiles, [
        {run, [{erl_opts,[no_debug_info]},
                {relx, [{dev_mode, false}
                ]}
        ]},
        {prod, [{erl_opts,[no_debug_info,{d,'PRODUCT'}]},   %% release版本为prod,可自己命名,注意release 需要no_debug_info,不然有被反编译的风险
                {relx, [{dev_mode, false}
                        ,{include_erts, true}
                        ,{sys_config, "./config/sys.config"}
                        ,{vm_args, "./config/vm.args"}
                ]}]
        }]
}.
 
5.apps
erlang的三个必要文件
x.app.src : app的配置
x_app.erl : app的启动文件
x_sup.erl : sup主监控
以上都可以通过IDEA自动创建
 
6.config
后面一篇详细介绍
 
7.编译
完成了这些,就可以使用./rebar3 compile 编译代码了
编译成功会看到自动生成了_build文件夹,现在就搭建了一个最简单的服务端框架,引入了日志库lager
如有报错,可以使用 DEBUG=1 ./rebar3 compile 查看详细报错信息
大部分报错是连不上hex仓库,挂上代理可以解决
 
rebar3的其他命令可以通过./rebar3 help获取,后面章节会陆续介绍
lager的详细使用方法,后面章节说明
 
posted @ 2020-06-09 11:42  feapoi  阅读(727)  评论(0)    收藏  举报