rebar3使用介绍(三)命令

rebar3使用介绍(三)命令rebar3 使用介绍 三 ascompilecle depshelpnewp 本篇主要介绍 rebar3 的命令 as 它使配置文件名称和任务列表在该配置文件下运行 举个

本篇主要介绍rebar3的命令

as

rebar.config

{profiles, [ {dev, [ {plugins, [ {rebar3_gpb_plugin, "2.3.2"} ]}, {provider_hooks, [ {pre, [ {compile, {protobuf, compile}}, {clean, {protobuf, clean}} ]} ]} ]}, {test, [ {erl_opts, [nowarn_export_all]}, {ct_opts, [{create_priv_dir, auto_per_tc}, {config, "test/ct.config"}]}, {plugins, [ rebar3_proper ]}, {deps, [ {proper, {git, "git://github.com/proper-testing/proper", {tag, "v1.3"}}} ]}, {extra_src_dirs, ["test/support"]} ]} ]}. 

根据profiles字段的值,可以自定义自己的发布模板

compile

rebar3的编译命令会自己确保依赖到位,不像rebar需要自己get-deps,除了deps部分其他和rebar一致,编译erl,app.src

clean

Option Type Description
–all/-a none 清除所有app,包括依赖项的构建文件
–profile/-p string 等价于rebar3 as clean

ct

cover

cover 一般配合ct或者eunit来用,rebar3 do ct, cover, rebar3 do eunit, cover 或者 rebar3 do eunit, ct, cover

cover 是否开启配置在rebar.config中的cover_enabled字段,默认是false

%% Whether to enable coverage reporting where commands support cover. Default %% is `false' {cover_enabled, false}. 

cover 命令支持以下扩展参数:

Option Description
–reset/-r 重置所有数据
–verbose / -v 在终端中打印覆盖率分析。

通过添加{cover_excl_mods,[Modules]}到配置文件,可以从代码覆盖中将特定模块列入黑名单。通过添加{cover_excl_apps, [AppNames]}到配置文件,可以将特定应用程序列入黑名单。

deps

列出依赖项,无论它们是源依赖项还是程序包依赖项,以及它们是否已锁定。锁定但未与锁定文件匹配的那些后跟星号(*)

do

do 允许你串行执行多个命令,以逗号分隔。例:rebar3 do a, b, c

dialyzer

构建并保持最新的合适PLT,并使用它来对当前项目进行成功的类型分析。

Option Description
–update-PLT / -u 启用更新PLT。默认值:true
–succ-typings/-s 启用成功键入分析。默认值:true

有关抑制告警的说明,请参阅Dialyzer文档中的Requesting or Suppressing Warnings in Source Files部分。

PLT文件被命名_

_plt; 基础PLT是PLT,包含项目PLT通常需要的核心应用程序。每个OTP版本创建一个基本PLT并存储在其中base_plt_location。然后使用基础PLT来构建项目PLT。

可以将以下(可选)配置添加到rebar.config中的选项dialyzer中:

Option Description
warnings 透析器警告列表
get_warnings 更改PLT文件时显示警告(布尔值)
plt_apps 用于确定哪些包含在PLT文件的应用程序的策略,top_level_deps以仅包括直接依赖或all_deps包括所有嵌套的依赖(直接依赖的应用程序中列出applications和included_applications他们的.app文件。)
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”

edoc

生成doc文档,具体看这

escriptize

生成包含项目及其依赖项的BEAM文件的escript可执行文件。

Config Option Type Description
escript_main_app atom 要转到escript的应用程序的名称。如果只有一个,则默认为顶级应用。使用伞状项目(具有多个顶级应用程序)时,必须指定此值。
escript_name string 生成的escript的名称,以及boot(Module:main(_))的默认模块名称。默认值为escript_main_app
escript_incl_apps list of atoms 除主应用程序及其依赖项(来自应用程序文件)之外,要包含在escript存档中的应用程序列表。默认为[]
escript_emu_args string Escript模拟器参数(%%!在escript声明之后)。该字符串必须%%!以换行符开头并以换行符结束。一个示例字符串”%%! +sbtu +A0\n”。默认值为 “%%! -escript main MainApp\n”
escript_shebang string 要运行的escript文件的位置。默认为”#!/usr/bin/env escript\n”。行结束标记必须包含在字符串中。
escript_comment string 任意comment放入生成的escript中。必须在末尾包含换行标记。默认为%%\n。

要覆盖escript的默认模块名称(预期与之相同escript_name),请添加-escript main Module到escript_emu_args

示例escript配置来自relx:

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

eunit

运行项目应用程序的eunit测试。支持参数如下:

Option Type Description
–cover/-c Boolean 生成cover数据
–verbose/-v Boolean 详细输出
–app Comma separated list of strings 运行测试的应用程序列表。相当于EUnit的[{application, App}]。
–suite Comma separated list of strings 要运行的测试套件列表。相当于EUnit的[{module, Suite}]。
–file / -f Comma separated list of strings 要运行的文件列表(例如test/my_tests.beam),相当于Eunit的[{file, File}]。

get-deps

rebar3 已结不需要这个命令,compile会调用get-deps

help

查看某个命令的帮助, rebar3 help clean

new

path

打印在当前配置文件中构建目录的路径。支持选项如下:

Option Type Description
-app Comma separated list of strings 逗号分隔的应用程序列表,用于返回路径。
–base none 返回指定项目当前配置文件的路径
–bin none 返回指定项目当前配置文件的路径
–ebin none 返回指定项目当前配置文件的路径
–lib none 返回指定项目当前配置文件的路径
–priv none 返回指定项目当前配置文件的路径
–separator/-s string 在多个返回路径的情况下,用于连接它们的分隔符。
–src none 返回指定项目当前配置文件的路径
–rel none 返回指定项目当前配置文件的路径

pkgs

列出可用的包。

release

构建项目发布。使用rebar3 help release来查看支持参数列表

relup

从2个版本创建一个relup, 使用 rebar3 help relup 查看支持参数列表

report

生成上下文数据以包含在错误报告中,如果你要给rebar3上报自己的异常,使用reprot可以快速采集环境信息

shell

使用项目应用程序和路径中的deps运行shell。

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

Option Type Description
–config string 支持加载配置文件(如果有)。默认是sys_config
–name/–sname atom 使用erl -name/-sname 来启动节点
–setcookie string 指定cookie,同erl -setcookie
–script string 在应用程序启动之前要执行的escript的路径
–apps string 以逗号分隔的要引导的应用程序名称列表。

如果relx做了配置,则默认为relx版本中的应用程序。

tar

构建由项目构建的发布的压缩tar存档, rebar3 help tar 查看详细内容

tree

打印项目构件树

lock

获取要添加到rebar.lock文件中的未构建的依赖项。它们会被下载,但它们的构建脚本都不应该运行。虽然这不一定适用于pre / post hooks和dep plugins。

unlock

解锁依赖项。如果没有提到依赖项,则该命令将解锁所有依赖项。如果列出任何特定的顶级依赖项(以逗号分隔)作为参数,那么这些依赖项将被解锁。

然后生成新的锁定文件,或者在没有锁定的情况下删除现有的锁定文件。

当从rebar.config中取出一个或多个依赖项时,应使用此命令,但保留在锁定文件中。也就是你要删除依赖项的时候,用来清理rebar.lock文件

update

更新包索引。

upgrade

version

打印rebar3 和erlang的版本

$ ../rebar3 version rebar 3.7.0-rc2+build.4175.ref83d01b5 on Erlang/OTP 19 Erts 8.0 

xref

执行xref分析


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210942.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午11:33
下一篇 2026年3月18日 下午11:33


相关推荐

  • git修改提交者用户名和邮箱_163邮箱用户名可以改吗

    git修改提交者用户名和邮箱_163邮箱用户名可以改吗当在GitHub中更改用户名时,git中并没有随之修改,需要自己进行修改,下面给出查看和修改用户名以及邮箱1、查看用户名以及邮箱,使用gitconfig命令gitconfiguser.namegitconfiguser.email2、修改用户名以及邮箱,使用gitconfig命令的–global参数gitconfig–globaluser.name"yourn…

    2025年9月1日
    8
  • 费舍尔精确检验matlab,Fisher精确检验

    费舍尔精确检验matlab,Fisher精确检验Fisher sExactTestMa simplementat sexactteston tailedtests Otherimpleme m

    2026年3月26日
    2
  • C++ struct 初始化与赋值

    C++ struct 初始化与赋值1.CC++结构体的初始化今天看到项目中对自定义结构体初始化方式有点陌生,特在此罗列一下可用的结构体初始化的方式。对结构体structA{intb;intc;}有几种初始化方式:第一种:structAa={.b=1,.c=2};第二种:structAa={b:1,c:2};第三种:structAa1=…………

    2022年7月11日
    22
  • int16, int32, int64等类型说明

    int16, int32, int64等类型说明Int16 意思是 16 位整数 16bitinteger 相当于 short 占 2 个字节 32768 32767Int32 意思是 32 位整数 32bitinteger 相当于 int 占 4 个字节 Int64 意思是 64 位整数 64bitinterge 相当于 longlong 占 8 个字节

    2026年3月19日
    3
  • scrapy安装步骤_linux下安装scrapy

    scrapy安装步骤_linux下安装scrapy1、Scrapy是什么Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。2、scrapy安装安装过程中出错:如果安装出现一下错误building‘twisted.test.raiser’extensionerror:MicrosoftVisualC++14.0isrequired.Getitwith“MicrosoftVisualC++BuildTools”:http://l

    2025年11月19日
    7
  • 机器学习数据预处理1:独热编码(One-Hot)及其代码

    机器学习数据预处理1:独热编码(One-Hot)及其代码1 为什么使用 one hot 编码 问题 在机器学习算法中 我们经常会遇到分类特征 例如 人的性别有男女 祖国有中国 美国 法国等 这些特征值并不是连续的 而是离散的 无序的 目的 如果要作为机器学习算法的输入 通常我们需要对其进行特征数字化 什么是特征数字化呢 例如 性别特征 男 女

    2026年3月17日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号