rebar3 - tool for working with Erlang projects
rebar3 --version
rebar3 help
rebar3 command [options] ...
Rebar3 is an Erlang tool that makes it easy to create, develop,
and release Erlang libraries, applications, and systems in a repeatable
manner.
Full documentation at http://www.rebar3.org/
For the full command list, see the COMMANDS section.
With rebar3 help <task>, commands and plugins will
display their own help information.
- compile
- Compile the current project
- new (help
[template])|template
- Show information about templates or use one
- update
- Fetch the newest version of the Hex index
- do
command[,command,...]
- Run one or more commands in a sequence
- shell
- Start the current project in a REPL. You can then use
r3:do(task) to call it on the project without dropping the
current state.
- as
- Higher order provider for running multiple tasks in a sequence as a
certain profiles.
- clean
[-a|--all] [-p|--profile]
- Remove compiled beam files from apps.
- --all: Clean all apps include deps
- --profile: Clean under profile. Equivalent to `rebar3 as
<profile> clean`
- compile
[-d|--deps_only]
- Compile apps .app.src and .erl files.
- --deps_only: Only compile dependencies, no project apps will be
built.
- cover
[-r|--reset] [-v|--verbose]
[-m|--min_coverage]
- Perform coverage analysis.
- --reset: Reset all coverdata.
- --verbose: Print coverage analysis.
- --min_coverage: Mandate a coverage percentage required to succeed
(0..100)
- ct [--dir]
[--suite] [--group] [--case] [--label]
[--config] [--spec] [--join_specs]
[--allow_user_terms] [--logdir] [--logopts]
[--verbosity] [-c|--cover] [--cover_export_name]
[--repeat] [--duration] [--until] [--force_stop]
[--basic_html] [--stylesheet] [--decrypt_key]
[--decrypt_file] [--abort_if_missing_suites]
[--multiply_timetraps] [--scale_timetraps]
[--create_priv_dir] [--include] [--readable]
[-v|--verbose] [--name] [--sname]
[--setcookie] [--sys_config] [--compile_only]
[--retry]
- Run Common Tests.
- --dir: List of additional directories containing test suites
- --suite: List of test suites to run
- --group: List of test groups to run
- --case: List of test cases to run
- --label: Test label
- --config: List of config files
- --spec: List of test specifications
- --join_specs: Merge all test specifications and perform a single
test run
- --allow_user_terms: Allow user defined config values in config
files
- --logdir: Log folder
- --logopts: Options for common test logging
- --verbosity: Verbosity
- --cover: Generate cover data
- --cover_export_name: Base name of the coverdata file to write
- --repeat: How often to repeat tests
- --duration: Max runtime (format: HHMMSS)
- --until: Run until (format: HHMMSS)
- --force_stop: Force stop on test timeout (true | false |
skip_rest)
- --basic_html: Show basic HTML
- --stylesheet: CSS stylesheet to apply to html output
- --decrypt_key: Path to key for decrypting config
- --decrypt_file: Path to file containing key for decrypting
config
- --abort_if_missing_suites: Abort if suites are missing
- --multiply_timetraps:
- --scale_timetraps: Scale timetraps
- --create_priv_dir: Create priv dir (auto_per_run | auto_per_tc |
manual_per_tc)
- --include: Directories containing additional include files
- --readable: Shows test case names and only displays logs to shell
on failures (true | compact | false)
- --verbose: Verbose output
- --name: Gives a long name to the node
- --sname: Gives a short name to the node
- --setcookie: Sets the cookie if the node is distributed
- --sys_config: List of application config files
- --compile_only: Compile modules in the project with the test
configuration but do not run the tests
- --retry: Experimental feature. If any specification for previously
failing test is found, runs them.
- deps
- List dependencies
- dialyzer
[-u|--update-plt] [-s|--succ-typings]
- Run the Dialyzer analyzer on the project.
- --update-plt: Enable updating the PLT. Default: true
- --succ-typings: Enable success typing analysis. Default: true
- do
- Higher order provider for running multiple tasks in a sequence.
- edoc
- Generate documentation using edoc.
- escriptize
- Generate escript archive.
- eunit [--app]
[--application] [-c|--cover]
[--cover_export_name] [-d|--dir]
[-f|--file] [-m|--module]
[-s|--suite] [-v|--verbose] [--name]
[--sname] [--setcookie]
- Run EUnit Tests.
- --app: Comma separated list of application test suites to run.
Equivalent to `[{application, App}]`.
- --application: Comma separated list of application test suites to
run. Equivalent to `[{application, App}]`.
- --cover: Generate cover data. Defaults to false.
- --cover_export_name: Base name of the coverdata file to write
- --dir: Comma separated list of dirs to load tests from. Equivalent
to `[{dir, Dir}]`.
- --file: Comma separated list of files to load tests from.
Equivalent to `[{file, File}]`.
- --module: Comma separated list of modules to load tests from.
Equivalent to `[{module, Module}]`.
- --suite: Comma separated list of modules to load tests from.
Equivalent to `[{module, Module}]`.
- --verbose: Verbose output. Defaults to false.
- --name: Gives a long name to the node
- --sname: Gives a short name to the node
- --setcookie: Sets the cookie if the node is distributed
- get-deps
- Fetch dependencies.
- help
- Display a list of tasks or help for a given task or subtask.
- new
[-f|--force]
- Create new project from templates.
- --force: overwrite existing files
- path [--app]
[--base] [--bin] [--ebin] [--lib]
[--priv] [-s|--separator] [--src]
[--rel]
- Print paths to build dirs in current profile.
- --app: Comma separated list of applications to return paths
for.
- --base: Return the `base' path of the current profile.
- --bin: Return the `bin' path of the current profile.
- --ebin: Return all `ebin' paths of the current profile's
applications.
- --lib: Return the `lib' path of the current profile.
- --priv: Return the `priv' path of the current profile's
applications.
- --separator: In case of multiple return paths, the separator
character to use to join them.
- --src: Return the `src' path of the current profile's
applications.
- --rel: Return the `rel' path of the current profile.
- pkgs
- List information for a package.
- release
[-n|--relname] [-v|--relvsn]
[-g|--goal] [-u|--upfrom]
[-o|--output-dir] [-h|--help]
[-l|--lib-dir] [-p|--path]
[--default-libs] [-V|--verbose]
[-d|--dev-mode] [-i|--include-erts]
[-a|--override] [-c|--config]
[--overlay_vars] [--vm_args] [--sys_config]
[--system_libs] [--version] [-r|--root]
- Build release of project.
- --relname: Specify the name for the release that will be
generated
- --relvsn: Specify the version for the release
- --goal: Specify a target constraint on the system. These are
usually the OTP
- --upfrom: Only valid with relup target, specify the release to
upgrade from
- --output-dir: The output directory for the release. This is `./` by
default.
- --help: Print usage
- --lib-dir: Additional dir that should be searched for OTP Apps
- --path: Additional dir to add to the code path
- --default-libs: Whether to use the default system added lib dirs
(means you must add them all manually). Default is true
- --verbose: Verbosity level, maybe between 0 and 3
- --dev-mode: Symlink the applications and configuration into the
release instead of copying
- --include-erts: If true include a copy of erts used to build with,
if a path include erts at that path. If false, do not include erts
- --override: Provide an app name and a directory to override in the
form <appname>:<app directory>
- --config: The path to a config file
- --overlay_vars: Path to a file of overlay variables
- --vm_args: Path to a file to use for vm.args
- --sys_config: Path to a file to use for sys.config
- --system_libs: Path to dir of Erlang system libs
- --version: Print relx version
- --root: The project root directory
- relup
[-n|--relname] [-v|--relvsn]
[-g|--goal] [-u|--upfrom]
[-o|--output-dir] [-h|--help]
[-l|--lib-dir] [-p|--path]
[--default-libs] [-V|--verbose]
[-d|--dev-mode] [-i|--include-erts]
[-a|--override] [-c|--config]
[--overlay_vars] [--vm_args] [--sys_config]
[--system_libs] [--version] [-r|--root]
- Create relup of releases.
- --relname: Specify the name for the release that will be
generated
- --relvsn: Specify the version for the release
- --goal: Specify a target constraint on the system. These are
usually the OTP
- --upfrom: Only valid with relup target, specify the release to
upgrade from
- --output-dir: The output directory for the release. This is `./` by
default.
- --help: Print usage
- --lib-dir: Additional dir that should be searched for OTP Apps
- --path: Additional dir to add to the code path
- --default-libs: Whether to use the default system added lib dirs
(means you must add them all manually). Default is true
- --verbose: Verbosity level, maybe between 0 and 3
- --dev-mode: Symlink the applications and configuration into the
release instead of copying
- --include-erts: If true include a copy of erts used to build with,
if a path include erts at that path. If false, do not include erts
- --override: Provide an app name and a directory to override in the
form <appname>:<app directory>
- --config: The path to a config file
- --overlay_vars: Path to a file of overlay variables
- --vm_args: Path to a file to use for vm.args
- --sys_config: Path to a file to use for sys.config
- --system_libs: Path to dir of Erlang system libs
- --version: Print relx version
- --root: The project root directory
- report
- Provide a crash report to be sent to the rebar3 issues page.
- shell
[--config] [--name] [--sname] [--setcookie]
[--script] [--apps] [--start-clean]
[--user_drv_args]
- Run shell with project apps and deps in path.
- --config: Path to the config file to use. Defaults to {shell,
[{config, File}]} and then the relx sys.config file if not specified.
- --name: Gives a long name to the node.
- --sname: Gives a short name to the node.
- --setcookie: Sets the cookie if the node is distributed.
- --script: Path to an escript file to run before starting the
project apps. Defaults to rebar.config {shell, [{script_file, File}]} if
not specified.
- --apps: A list of apps to boot before starting the shell. (E.g.
--apps app1,app2,app3) Defaults to rebar.config {shell, [{apps, Apps}]} or
relx apps if not specified.
- --start-clean: Cancel any applications in the 'apps' list or
release.
- --user_drv_args: Arguments passed to user_drv start function for
creating custom shells.
- tar
[-n|--relname] [-v|--relvsn]
[-g|--goal] [-u|--upfrom]
[-o|--output-dir] [-h|--help]
[-l|--lib-dir] [-p|--path]
[--default-libs] [-V|--verbose]
[-d|--dev-mode] [-i|--include-erts]
[-a|--override] [-c|--config]
[--overlay_vars] [--vm_args] [--sys_config]
[--system_libs] [--version] [-r|--root]
- Tar archive of release built of project.
- --relname: Specify the name for the release that will be
generated
- --relvsn: Specify the version for the release
- --goal: Specify a target constraint on the system. These are
usually the OTP
- --upfrom: Only valid with relup target, specify the release to
upgrade from
- --output-dir: The output directory for the release. This is `./` by
default.
- --help: Print usage
- --lib-dir: Additional dir that should be searched for OTP Apps
- --path: Additional dir to add to the code path
- --default-libs: Whether to use the default system added lib dirs
(means you must add them all manually). Default is true
- --verbose: Verbosity level, maybe between 0 and 3
- --dev-mode: Symlink the applications and configuration into the
release instead of copying
- --include-erts: If true include a copy of erts used to build with,
if a path include erts at that path. If false, do not include erts
- --override: Provide an app name and a directory to override in the
form <appname>:<app directory>
- --config: The path to a config file
- --overlay_vars: Path to a file of overlay variables
- --vm_args: Path to a file to use for vm.args
- --sys_config: Path to a file to use for sys.config
- --system_libs: Path to dir of Erlang system libs
- --version: Print relx version
- --root: The project root directory
- tree
[-v|--verbose]
- Print dependency tree.
- --verbose: Print repo and branch/tag/ref for git and hg deps
- unlock
- Unlock dependencies.
- update
- Update package index.
- upgrade
- Upgrade dependencies.
- version
- Print version for rebar and current Erlang.
- xref
- Run cross reference analysis.
Environment variables allow overall rebar3 control across command
boundaries.
- REBAR_PROFILE
- Choose a default profile. Defaults to default
- HEX_CDN
- Pick an alternative hex mirror.
- REBAR_CACHE_DIR
- Location of the directory for local cache. Defaults to
hex.pm.
- QUIET
- Only display errors.
- DEBUG
- Display debug information.
- REBAR_COLOR=high|low
- How much color to show in the terminal. Defaults to high.
- REBAR_CONFIG
- Name of rebar configuration files. Defaults to rebar.config
- REBAR_GIT_CLONE_OPTIONS
- Arguments to add after each git clone operation. For example, the
value --reference ~/.cache/repos.reference allows one to create a
cache of all fetched repositories across builds
See http://www.rebar3.org/v3.0/docs/configuration