Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Advanced Configuration

minimum_otp_vsn

Purpose: Minimum OTP version required

Type: string()

Example:

{minimum_otp_vsn, "24"}.

Also Supports Regex:

{minimum_otp_vsn, "24|25"}.

artifacts

Purpose: Additional artifacts to verify after compilation

Type: [File :: string()]

Variables: {{profile}}, {{priv_dir}}

Example:

{artifacts, [
    "priv/my_nif.so",
    "priv/{{profile}}/custom_artifact"
]}.

project_plugins

Purpose: Plugins for this project only (not global)

Type: Same as deps

Example:

{project_plugins, [
    rebar3_hex,
    {rebar3_custom, {git, "...", {tag, "1.0.0"}}}
]}.

plugins

Purpose: Global plugins

Type: Same as deps

Example:

{plugins, [
    rebar3_proper,
    rebar3_ex_doc
]}.

app_vars_file

Purpose: External file for .app.src variable substitution

Type: string()

Example:

{app_vars_file, "config/app.vars"}.

File Contents (config/app.vars):

{copyright, "Copyright (c) 2024 Company"}.
{build_date, "2024-01-15"}.

jobs

Purpose: Number of parallel compilation workers

Type: pos_integer()

Default: Number of CPU cores

Example:

{jobs, 4}.

xrl_opts / yrl_opts

Purpose: Leex/Yecc compiler options

Type: [term()]

Example:

{xrl_opts, [{includefile, "custom.hrl"}]}.
{yrl_opts, [{includefile, "parser.hrl"}]}.

mib_opts

Purpose: SNMP MIB compiler options

Type: [term()]

Example:

{mib_opts, [
    {i, ["priv/mibs"]},
    {outdir, "priv/mibs"}
]}.

shell

Purpose: Rebar3 shell configuration

Type: [{Key, Value}]

Example:

{shell, [
    {config, "config/sys.config"},
    {apps, [my_app]},
    {script_file, "scripts/shell.escript"}
]}.