最近想尝试用下rebar,在rebar的github主页发现 rebar已经被抛弃了,那么就按建议说的使用rebar3 吧
Deprecated Erlang build tool that makes it easy to compile and test
Erlang applications, port drivers and releases. We encourage you to
move to https://github.com/erlang/rebar3.
本文使用的rebar3工具来源:https://github.com/erlang/rebar3
下载与安装
下载编译好的版本
$ wget https://s3.amazonaws.com/rebar3/rebar3
$ chmod +x rebar3
设置path,方便使用
$ pwd
$ /data/bin/rebar3
$ export PATH=$PATH:/data/bin/rebar3
使用export设置的PATH只对当前的shell生效,重启后发现rebar3命令又是command not found 了
如果要设置path使每次登陆都生效,需要修改profile文件或.bashrc文件
/etc/profile
对所有用户生效
~/.bashrc
对当前用户生效
把 $ export PATH=$PATH:/data/bin/rebar3
加到profile文件 export PATH 的下一行即可(或.bashrc的末尾),然后重启就可以了。
当然我们肯定不需要去重启,source下刚才修改过的文件就能生效了。
$ source /etc/profile
source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
rebar3 new Template ProjectName
rebar3 提供了一些项目模板,使用new
可以通过模板来创建项目
rebar3 new help
可以查看rebar3支持的模板,目前有 app、cmake、escript、lib、plugin和release这几种内置模板
rebar3 new help <template>
可以查看具体模板的详细信息,如:rebar3 new help release
创建项目时的变量
这些变量并不是很重要,但也许你会觉得很刺眼。
我们在rebar3 new help release
就发现了,variables都是些默认值,比如
name="myapp"
author_name="Anonymous"
author_email="anonymous@example.org"
如何修改这些变量的值?
如果我们使用rebar3 new release pro1
的方式创建项目pro1,那么除了name,其他的值都是默认值。
不过rebar3 new
支持 rebar3 new release name="pro1" author_name="wei" var1="var1" ...
这种形式,在创建项目的时候给这些变量,或自定义变量赋值。
如何一劳永逸地修改这些变量的值?
官方文档是这么说的:
Global variables can be set by editing the file at
$HOME/.config/rebar3/templates/globals:
那么这个globals文件应该是怎么样的呢:
{variables, [
{author_name, "My Name Is A String"},
{copyright_year, "2014-2022", "The year or range of years for copyright"},
{my_custom_var, "hello there"} ]}.
显然文件globals就是erlang的数据结构定义的key-value格式 。
由于一开始是直接下载编译好的rebar3来用的,在我们的系统中并没有这些目录与文件,所以要自己新建globals文件。
mkdir -p ~/.config/rebar3/templates
touch ~/.config/rebar3/teamplates/globals
我们先创建文件,再按上面的格式去编辑自己的globals文件,最后再使用rebar3 new release test2 这样形式来创建项目,查看test2项目的LICENSE文件的第一行会发现该配置已经生效了。
如果没有生效则很有可能是globals文件的格式或拼写出现了问题,记住,是erlang的tuple结构构成的key-value。