rebar3(1)
tool for working with Erlang projects
Description
REBAR3
NAME
rebar3 - tool for working with Erlang projects
SYNOPSIS
rebar3 --version
rebar3 help
rebar3 command [options] ...
DESCRIPTION
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/
ESSENTIAL COMMANDS
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. |
COMMANDS
|
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
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
Configuration File Options
See http://www.rebar3.org/v3.0/docs/configuration