- 每个命令代表一个任务,运行一个或多个功能完成任务。
1. as
- 高阶任务,它使一个配置文件名称和任务列表在该配置文件下运行。
2. compile
- 在确保所有依赖项都可用之后,如果依赖项不存在,会获取依赖项,该命令将编译所需的依赖项和项目的应用程序的
.app.src
文件和.erl
文件。
3. clean
-
从应用程序中删除已编译生成的beam文件。
-
默认情况下,clean命令删除顶级应用程序的beam文件。对于配置文件的处理也是如此,这意味着
rebar3 clean
仅仅清除默认配置文件,rebar3 as test clean
将仅清除测试配置文件。 -
通过添加参数
--all
可以清除顶层应用程序以及依赖项的beam文件
Option | Type | Description |
---|---|---|
--all/-a | none | 清除所有应用程序以及依赖项 |
--profile/-p | string | 指定一个配置,等价于rebar3 as <profile> clean |
4. ct
-
将会执行位于
test/
目录下的测试用例 -
最常用的测试选项如与erlang文档
ct_run
的描述是基本一致的。常用的扩展参数如下:
Option | Type | Description |
---|---|---|
--dir | 逗号分隔的字符串列表 | 编译并运行指定目录下的所有测试套件 |
--suite | 逗号分隔的字符串列表 | 编译并运行指定的测试套件,必须使用绝对路径或者使用相对于当前路径指定测试套件。 |
--group | 逗号分隔的字符串列表 | 运行测试组,请查看Common Test Documentation |
--case | 逗号分隔的字符串列表 | 运行的测试用例列表,请查看Common Test Documentation |
--spec | 逗号分隔的字符串列表 | Test Specifications列表 |
--join_spec | 逗号分隔的字符串列表 | 类似--spec ,但会merge为单个然后进行运行 |
--repeat | 整形 | 多久执行一次测试 |
--duration | 字符串(格式: HHMMSS) | 最大允许的测试时间 |
--until | 字符串(格式: HHMMSS) | 指定运行测试时间 |
--force_stop | true、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_dir | auto_per_run、auto_per_tc 、manual_per_tc | 更改测试创建临时目录的行为 |
--include | 字符串 | 包含文件的其他目录。添加了与ct_run奇偶校验的选项,通常rebar3应该处理包含文件路径 |
--name、--sname | 字符串 | 使用给定的名字启动一个分布式节点 |
--setcookie | 字符串 | 设置一个分布式cookie |
--compile_only | Boolean | 只是编译测试文件,不运行 |
- 在
test
配置文件中运行
5. cover
-
对测试或Eunit测试套件调用的模块执行覆盖分析。当在你的rebar配置文件中配置了
{cover_enabled, true}
选项或者如果覆盖标志单独使用了这些命令,就调用rebar3 do ct
、cover
、rebar3 do eunit
、cover
或者与rebar3 do eunit
、ct
、cover
结合使用。 -
生成HTML报告
选项 | 类型 | 描述 |
---|---|---|
--reset/-r | none | 重置所有覆盖数据 |
--verbose/-v | none | 在终端打印覆盖分析信息 |
- 通过向配置文件中添加·{cover_excl_mods, [Modules]}·,可以将特定模块列入代码覆盖黑名单。通过向配置文件添加{cover_excl_apps, [AppNames]}可将特定应用程序列入代码覆盖黑名单。
6. deps
- 列出依赖关系,无论他们是源代码还是包依赖关系,以及他们是否被锁定。那些被锁定并且未匹配到锁定文件允许后面加一个星号(
*
)
7. do
- 通过一个命令运行多个任务,以逗号分隔,例如
rebar3 do a,b,c
8. dialyzer
- 构建并保持最新的一个合适的PLT,并且使用它来对项目进行成功类型分析。
选项 | 类型 | 描述 | 默认值 |
---|---|---|---|
--update-plt/-u | boolean | 启用更新PLT。 | true |
--succ-typings/-s | boolean | 启用成功类型分析 | 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
配置项中。
Option | Description |
---|---|
warnings | 一个分析器警告列表 |
get_warnings | 更改PLT文件时显示警告(布尔) |
plt_apps | 用于确定包含在PLT文件中的应用的策略。 top\_level\_deps 只包括直接的依赖关系, all\_deps 包括所有嵌套的依赖关系(直接依赖的应用程序被列举在他们的.app文件中的applications 和include_applications 项中)。 |
plt_extra_apps | 一个包含在PLT文件中的应用程序列表(base_plt_apps 中的应用程序已经在列表中) |
plt_location | PLT文件的位置,local 存储在配置文件的基本目录(默认的)或自定义目录 |
plt_prefix | PLT文件的前缀,默认为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_app | atom | 要转到escript的应用程序的名称,如果只有一个默认为顶级应用。当使用一个顶级的存储库(具有多个顶级应用程序)时,必须指定此值。 |
escript_name | string | 生成的escript的名称,要引导的默认模块名(Module:main() ),默认为escript_main_app 的值 |
escript_incl_apps | list of | 除主应用程序及依赖项之外(来自app文件),还包括在escript存档中的应用程序列表。默认为[] |
escript_emu_args | string | escript仿真器参数(在escript声明的%%! 之后)。该字符串必须以·%%!·开头并且以换行符结束。例如:%%!+sbtu +AO\n 。默认值为:"%%! -escript main MainApps\n |
escript_shebang | string | 要运行的escript文件的位置。默认为:#!/usr/bin/env escript\n 。行结束标记必须包含在字符串中。 |
escript_comment | string | 放入生成的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/-c | Boolean | 生成覆盖数据 |
--verbose/-v | Boolean | 详细输出 |
--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/-f | none | 覆盖已经存在的文件 |
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)
访问特定的命名空间。这些命令可以不带参数调用。
选项 | 类型 | 描述 |
---|---|---|
--config | string | 如果存在配置文件,允许加载配置文件。如果存在默认为relx 定义的sys_config 条目,加载 |
--name/--sname | atom | 在网络模式下启动节点。等同于erl的-name和-sname选项 |
--setcookie | string | 设置分布式节点的cookie。相当于erl的-setcookie选项 |
--script | string | 应用程序启动之前要评估的escript的路径 |
--apps | string | 以逗号分隔的启动的应用程序名称的列表,如果存在默认为relx定义的sys_config条目 |
--start-clean | 指定后,shell不会引导任何应用程序; 同样适用于覆盖rebar.config 中的release 或shel l元组配置 | |
--relname/-r | atom | 如果存在多个版本,请指定要选择的版本 |
--relvsn/-v | string | 如果存在多个版本,请指定要使用的版本 |
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
- 运行交叉引用分析