erlang rebar3配置文件

rebar3的簡單使用可以參考rebar3的官方文檔。以下講解一些rebar3的配置,初入erlang,理解還不甚深刻。
用rebar3進行工程創建,會生成rebar.config文件,貼一些配置的使用方法

一、編譯設置
%% 編譯設置
{erl_opts, [
{parse_transform, lager_transform}
, {parse_transform, ms_transform}
, report
, warn_export_all
, warn_export_vars
, warn_obsolete_guard
, warn_shadow_vars
, warn_unused_function
, warn_deprecated_function
%% ,warn_missing_spec
, warn_unused_import
]}.
{parse_transform, lager_transform}是lager依賴庫的編譯選項,元編程的方式在編譯器生成對應的代碼,lager源代碼裏本身沒有lager:error,lager:info等等方法
二、rebar shell
{shell, [
{apps, [app_name, sync, recon]}
, {config, “config/app_name.config”}
]}.
這個配置支持在項目根目錄直接運行rebar3 shell啓動一個erl shell來運行我們的app,而其配置可以指定爲config目錄下的某個配置文件,而不是sys.config,適合本地調試,app_name後面的app名字是需要依賴啓動的app
三、rebar3插件
{plugins,
[
rebar3_run
, rebar3_auto
, {relflow, “1.0.5”}
]}.
配置我們項目需要的plugins,這裏的插件可以是我們自己編寫的rebar3插件
四、鉤子 provider_hooks
{provider_hooks,
[
{pre,[ {compile, {my_plugins, do_something}} ]},
{post,[{compile,{my_plugins1, clean}}]}
]
}.
例如這份配置,就是在執行rebar3 compile之前(pre)運行以my_plugins命名空間下的do_something命令,簡單說就是編寫了一個rebar3的插件叫my_plugins,提供一個命令叫do_something,即可以在命令行執行rebar3 my_plugins do_something的功能,只是現在配置之後自動調用了命令;post同理就是在compile之後執行那個插件的clean功能,clean功能具體幹什麼我們不得而知。
五、環境
{profiles, [
{profile1, [
{erl_opts, [no_debug_info]},
{relx, [
{include_src, false}
, {dev_mode, false}
, {include_erts, true}
, {system_libs, true}
]}
]}]}
例如這份配置,指定了一種環境叫profile1,編譯選項erl_opts爲no_debug_info,打包發佈的選項爲不包含源碼,禁止開發模式(目錄不是軟連接於default環境),包含erlang環境等,當然還可以加其它很多選項,爲每種環境單獨自定義需要的功能,常用default、prod、test等
六、覆蓋
{overrides, [{add, deps1, [{erl_opts, [no_debug_info]}]}]}
例如這份配置,就是對名爲deps1的依賴的rebar.config再添加一個配置,overrides提供了add和override兩種功能,第一種是加配置,第二種也就是用配置的數據去覆蓋原來依賴中有的數據

發佈了38 篇原創文章 · 獲贊 9 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章