用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,但是你千万不要写一个类似 
							   NODE@HOST的名称,这样会在生成发布文件的时候报错.
此时在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还可以使用模板,还可以做其它的扩展,这个地方我只是做一个简单流程的陈述



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值