rebar3-命令

  • 每个命令代表一个任务,运行一个或多个功能完成任务。

1. as


  • 高阶任务,它使一个配置文件名称和任务列表在该配置文件下运行。

2. compile


  • 在确保所有依赖项都可用之后,如果依赖项不存在,会获取依赖项,该命令将编译所需的依赖项和项目的应用程序的.app.src文件和.erl文件。

3. clean


  • 从应用程序中删除已编译生成的beam文件。

  • 默认情况下,clean命令删除顶级应用程序的beam文件。对于配置文件的处理也是如此,这意味着rebar3 clean仅仅清除默认配置文件,rebar3 as test clean将仅清除测试配置文件。

  • 通过添加参数--all可以清除顶层应用程序以及依赖项的beam文件

OptionTypeDescription
--all/-anone清除所有应用程序以及依赖项
--profile/-pstring指定一个配置,等价于rebar3 as <profile> clean

4. ct


  • 将会执行位于test/目录下的测试用例

  • 最常用的测试选项如与erlang文档ct_run的描述是基本一致的。常用的扩展参数如下:

OptionTypeDescription
--dir逗号分隔的字符串列表编译并运行指定目录下的所有测试套件
--suite逗号分隔的字符串列表编译并运行指定的测试套件,必须使用绝对路径或者使用相对于当前路径指定测试套件。
--group逗号分隔的字符串列表运行测试组,请查看Common Test Documentation
--case逗号分隔的字符串列表运行的测试用例列表,请查看Common Test Documentation
--spec逗号分隔的字符串列表Test Specifications列表
--join_spec逗号分隔的字符串列表类似--spec,但会merge为单个然后进行运行
--repeat整形多久执行一次测试
--duration字符串(格式: HHMMSS)最大允许的测试时间
--until字符串(格式: HHMMSS)指定运行测试时间
--force_stoptrue、false、skip_rest测试超时是否终止
--multiply_timetrap整型给定数值乘以超时时间为真正超时时间
--scale_timetrap布尔型使用代码覆盖率或跟踪时,启用自动超时值缩放
--abort_if_suite_is_missing布尔值假如测试失败,是否停止
--sys_config字符串在测试运行之前,应该加载的OTP应用程序配置文件列表
--config逗号分隔的字符串列表指定测试时使用的配置文件,请查看Common Test Documentation
--allow_user_terms布尔值允许用户在配置文件中定义配置,请查看Common Test Documentation
--decrypt_key字符串如果配置文件已加密,设置秘钥对其进行解密
--decrypt_file字符串如果配置文件已加密,指定秘钥文件对其进行解密
--logdir字符串指定测试日志的输出目录,请查看Common Test Documentation,默认: _build/test/logs
logopts逗号分隔的字符串列表设置测试日志配置,请查看Common Test Documentation,默认: _build/test/logs
--readable布尔值在测试结果中添加测试名称,在终端中仅展示失败的测试日志,默认: true
-v, --verbose布尔值详细输出,默认: false
--verbosity整数设置测试Verbosity的级别
-c, --cover布尔值生成cover数据
--cover_export_name字符串更改代码覆盖率文件的名称
--label字符串设置测试标签
--basic_html布尔值展示基础的HTML
--stylesheet字符串HTML输出文件的CSS样式
--create_priv_dirauto_per_run、auto_per_tc 、manual_per_tc更改测试创建临时目录的行为
--include字符串包含文件的其他目录。添加了与ct_run奇偶校验的选项,通常rebar3应该处理包含文件路径
--name、--sname字符串使用给定的名字启动一个分布式节点
--setcookie字符串设置一个分布式cookie
--compile_onlyBoolean只是编译测试文件,不运行
  • test配置文件中运行

5. cover


  • 对测试或Eunit测试套件调用的模块执行覆盖分析。当在你的rebar配置文件中配置了{cover_enabled, true}选项或者如果覆盖标志单独使用了这些命令,就调用rebar3 do ctcoverrebar3 do eunitcover或者与rebar3 do eunitctcover结合使用。

  • 生成HTML报告

选项类型描述
--reset/-rnone重置所有覆盖数据
--verbose/-vnone在终端打印覆盖分析信息
  • 通过向配置文件中添加·{cover_excl_mods, [Modules]}·,可以将特定模块列入代码覆盖黑名单。通过向配置文件添加{cover_excl_apps, [AppNames]}可将特定应用程序列入代码覆盖黑名单。

6. deps


  • 列出依赖关系,无论他们是源代码还是包依赖关系,以及他们是否被锁定。那些被锁定并且未匹配到锁定文件允许后面加一个星号(*)

7. do


  • 通过一个命令运行多个任务,以逗号分隔,例如rebar3 do a,b,c

8. dialyzer

  • 构建并保持最新的一个合适的PLT,并且使用它来对项目进行成功类型分析。
选项类型描述默认值
--update-plt/-uboolean启用更新PLT。true
--succ-typings/-sboolean启用成功类型分析true
  • 有关禁用警告的内容,请查看分析文档的Requesting or Suppressing Warnings in Source Files部分。

  • PLT文件命名格式为<prefidx>_<otp_release>_plt;基础的PLT包含项目PLT经常用到的核心应用程序。每个OTP版本创建一个基本的PLT并存储在base_plt_location。然后使用基本的PLT来构建项目PLTs。

  • 以下配置可以添加到rebar.config下dialyzer下的proplist配置项中。

OptionDescription
warnings一个分析器警告列表
get_warnings更改PLT文件时显示警告(布尔)
plt_apps用于确定包含在PLT文件中的应用的策略。 top\_level\_deps只包括直接的依赖关系, all\_deps包括所有嵌套的依赖关系(直接依赖的应用程序被列举在他们的.app文件中的applicationsinclude_applications项中)。
plt_extra_apps一个包含在PLT文件中的应用程序列表(base_plt_apps中的应用程序已经在列表中)
plt_locationPLT文件的位置,local存储在配置文件的基本目录(默认的)或自定义目录
plt_prefixPLT文件的前缀,默认为rebar3
base_plt_apps一个包含在基本PLT文件中的应用程序的列表
base_plt_location基本PLT文件的位置,global保存在$HOME/.cache/rebar3目录(默认)或一个自定义目录中
base_plt_prefix基本PLT文件的前缀,默认为rebar3

9. edoc


  • 使用doc生成文档
  • docs配置文件中运行

10. escriptize


  • 生成包含项目和它的依赖项的beam文件的escript可执行文件。
配置选项类型描述
escript_main_appatom要转到escript的应用程序的名称,如果只有一个默认为顶级应用。当使用一个顶级的存储库(具有多个顶级应用程序)时,必须指定此值。
escript_namestring生成的escript的名称,要引导的默认模块名(Module:main()),默认为escript_main_app的值
escript_incl_appslist of除主应用程序及依赖项之外(来自app文件),还包括在escript存档中的应用程序列表。默认为[]
escript_emu_argsstringescript仿真器参数(在escript声明的%%!之后)。该字符串必须以·%%!·开头并且以换行符结束。例如:%%!+sbtu +AO\n。默认值为:"%%! -escript main MainApps\n
escript_shebangstring要运行的escript文件的位置。默认为:#!/usr/bin/env escript\n。行结束标记必须包含在字符串中。
escript_commentstring放入生成的escript的注释。最后必须包含换行标记。默认值为%%\n
  • 要覆盖escript的默认模块名(预期与escript_name相同),请将-escript main Module添加到escript_emu_args

  • 例如relx的escript配置'

{escript_emu_args, "%%! +sbtu +A0 -noinput\n"}.
{escript_incl_apps, [getopt, erlware_commons, bbmustache, providers, relx]}.

11. eunit


  • 对项目应用程序运行eunit测试
选项类型描述
--cover/-cBoolean生成覆盖数据
--verbose/-vBoolean详细输出
--app逗号分隔的字符串列表运行测试的应用程序列表。等同于eunit的[{application, App}]
--suite逗号分隔的字符串列表运行的测试套件列表。等同于eunit的[{module, Suite}]
--file/-f逗号分隔的字符串列表运行的文件列表(例如test/my_tests.beam),等同于eunit的[{file, File}]
  • 使用test配置运行。

12. get-deps


  • 拉取项目依赖。
  • 该命令不是必须的,compile命令会自动拉取。

13. help


  • 显示给定任务或子任务的任务或帮助列表
选项类型描述
<task>string打印任务的帮助信息
<namespace> <task>string打印<namespace>命名空间下的任务的帮助信息

14. new


  • 使用模板创建一个新项目。通过不提供参数来查看可用模板的列表。
选项类型描述
--force/-fnone覆盖已经存在的文件
help <template>none显示每个模板的所有变量和参数

15. pkgs


  • 列举可用的包

16. release


  • 构建项目版本,调用rebar3 help release获取更多参数信息

17. relup


  • 从2个版本版本创建relup,调用rebar3 help relup获取更多参数信息

18. report


  • 错误报告中生成上下文数据

  • 用法示例:rebar3 report "mytask --arg1 --arg2"

19. shell


  • 在路径中运行项目应用程序和依赖的shell

  • 使用此命令引导的shell具有允许动态运行rebar3命令的代理,例如r3:do(compile)r3:do(upgrade),并自动重新加载新模块。可以通过调用r3:do(Namespace, Command)访问特定的命名空间。这些命令可以不带参数调用。

选项类型描述
--configstring如果存在配置文件,允许加载配置文件。如果存在默认为relx定义的sys_config条目,加载
--name/--snameatom在网络模式下启动节点。等同于erl的-name和-sname选项
--setcookiestring设置分布式节点的cookie。相当于erl的-setcookie选项
--scriptstring应用程序启动之前要评估的escript的路径
--appsstring以逗号分隔的启动的应用程序名称的列表,如果存在默认为relx定义的sys_config条目
--start-clean指定后,shell不会引导任何应用程序; 同样适用于覆盖rebar.config中的releaseshell元组配置
--relname/-ratom如果存在多个版本,请指定要选择的版本
--relvsn/-vstring如果存在多个版本,请指定要使用的版本

20. tar


  • 打包之后进行压缩,调用rebar3 help tar获取相关参数信息

21. tree


  • 打印项目的依赖关系树和传递依赖关系。

22. lock


  • 获取要添加到rebar.lock文件中的未建立的依赖项。它们只是下载下来,但它们的构建脚本都没有运行。虽然这不一定适用于pre/post hooks和依赖插件。

23. unlock


  • 解锁依赖关系。如果没有提及依赖,这个命令将解锁所有依赖。如果任何特定的顶级依赖(以逗号分隔)作为参数列出,那么它们将被解锁。

  • 一个新的加锁文件生成,如果没有锁保留,加锁文件将被删除。

  • 当一个或多个依赖已经从rebar.config移除,但仍然保留在加锁文件中,就应该使用此命令。

24. update


  • 更新包索引

25. upgrade


  • 升级依赖包并相应的更新锁文件
选项类型描述
<dependency>string升级依赖包(逗号分隔),如果没有依赖关系被提及,则升级所有依赖关系

26. version


  • 打印rebar3和当前的erlang版本

27. xref


  • 运行交叉引用分析

转载于:https://my.oschina.net/shadowolf/blog/840037

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值