最近想嘗試用下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="[email protected]"
如何修改這些變量的值?
如果我們使用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。