好贷网好贷款

用Rebar来创建和发布一个Erlang的项目

发布时间:2016-12-5 10:29:29 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"用Rebar来创建和发布一个Erlang的项目",主要涉及到用Rebar来创建和发布一个Erlang的项目方面的内容,对于用Rebar来创建和发布一个Erlang的项目感兴趣的同学可以参考一下。

构建REBAR: git clone git://github.com/rebar/rebar.git // 获取rebar cd rebar // 进入rebar的目录 ./bootstrap // 创建可被调用的rebar文件 ==> rebar (compile) // 构建 REBAR 完成 创建一个用 REBAR 来构建的项目: ./rebar create-app appid=myapp // 构建一个叫做myapp的项目 在 ./myapp/src 的文件夹中产生的3个文件的说明: myapp.app.src // 用于生成 ./myapp/ebin 文件夹下的myapp.app文件 myapp_app.erl // 启动应用的入口模块 myapp_sup.erl // myapp应用的根监督进程 编译应用生成beam文件 ./rebar compile 清理已经生成的编译文件 ./rebar clean 清理后编译 ./rebar clean compile 用 REBAR 来打包 cd ./myapp // 进入到myapp项目的根目录 mk rel // 创建rel文件夹,用来存放打包后的myapp程序 cd rebar ../rebar create-node nodeid=myapp // 创建发布的程序名称, 注意:虽然是叫node,但是你千万不要写一个类似  [email protected],这样会在生成发布文件的时候报错. 此时在rel文件夹下,生成了1个 files 文件夹和 reltool.config文件, 接下来就要编辑这个reltool.config的文件 erlang版本15B01或者更新的版本将 {app, exemplar, [{mod_cond, app}, {incl_cond, include}]} 修改成 {app, exemplar, [{mod_cond, app}, {incl_cond, include}, {lib_dir, ".."}]} 就是在最后加了一个 {lib_dir, ".."} 低于15B01的erlang版本则将 {sys, [ {lib_dirs, []}, 修改成 {sys, [ {lib_dirs, ["../apps"]}, // myapp存放目录的上级目录 注释: 如果你的应用调用了 sasl, os_mon, crypto 或者其它的应用,需要在 {sys, [ ..... {rel, myapp, "版本", [将应用添加在这个地方]}, // ....代表其它的配置项,此处省略 这么做的原因是,rebar自身生成的时候也会启动一些应用,这个可能会和应用内的启动操作发生冲突,所以需要在这个地方提前由rebar的编译程序来启动. 接下来我们要修改一下 rebar.config erlang版本15B01或更新的版本,在rebar.config中添加 {sub_dirs, ["rel"]} 低于15B01的版本,在rebar.config中添加 {sub_dirs, ["apps/myapp", "rel"]}. 接下来就应该创建和发布myapp的发布版本了 ./rebar clean compile generate // 重点是generate, 在生成之前一定要对整个项目编译完成一次 注释: 如果你想要自己设定启动后的节点的名称,请在执行 generate前先修改一下 /myapp/rel/files/ 文件夹下的vm.args 所有的文件生成后,就可以测试这个发布的包好不好用啦 ^_^ ./myapp/rel/myapp/bin/myapp start // 启动myapp ./myapp/rel/myapp/bin/myapp attach // 检查myapp的启动状态并调出erl操作环境 application:which_applications(). // 获取当前正在运行的应用 .................................................... // 你懂的 这样就完成了发布的流程. 当然REBAR还可以使用模板,还可以做其它的扩展,这个地方我只是做一个简单流程的陈述

上一篇:pf-ring
下一篇:qemu 安装LFS

相关文章

相关评论