erlang rebar3配置文件

    xiaoxiao2021-03-25  114

    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两种功能,第一种是加配置,第二种也就是用配置的数据去覆盖原来依赖中有的数据

    转载请注明原文地址: https://ju.6miu.com/read-5489.html

    最新回复(0)