- 每个命令代表一个任务,运行一个或多个功能完成任务。
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或shell元组配置 | |
| --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
- 运行交叉引用分析

4673

被折叠的 条评论
为什么被折叠?



