forked from basho/rebar
-
Notifications
You must be signed in to change notification settings - Fork 0
Rebar commands
tuncer edited this page Mar 30, 2012
·
14 revisions
Rebar provides support for the most commonly encountered development activities, include:
- Compilation
- Unit testing and coverage analysis
- Documentation generation
- Dependency management
In addition, it allows for OTP embedded system generation, taking advantage of the template processing afforded by rebar and the reltool application.
The most common commands are:
Command | Description |
---|---|
compile | Compile all the available source in the project. |
eunit | Perform unit testing using the EUnit application |
doc | Generate documention using the EDoc application |
clean | Remove any generated artifacts from compilation, unit testing, etc. |
Less commonly used commands (in alphabetical order):
Command | Description |
---|---|
check-deps | Check and display to fetched dependencies specified in rebar.config |
create | Create a prototypical project (described by the supplied template) |
create-app | Create a prototypical OTP application (described by the template) |
create-node | Create a prototypical OTP embedded system (described by the template) |
ct | Run common_test suites |
delete-deps | Delete the downloaded source for dependencies specified in rebar.config |
escriptize | Create stand-alone escript executable using .beam-files in ebin directory |
generate | Use the reltool application to construct an embedded system |
generate-upgrade | Build an upgrade package |
get-deps | Retrieve the source for dependencies specified in the rebar.config |
list-deps | List the details of the dependencies specified in the rebar.config |
update-deps | Update the retrieved source for dependencies specified in the rebar.config |
xref | Use the xref application to analyze dependencies |
Rebar is capable of compiling a number of different source files via the "compile" command.
Source | Target | Description |
---|---|---|
src/*.erl | ebin/*.beam | Erlang source files |
src/*.app.src | ebin/*.app | Erlang application specification |
c_src/*.c | priv/<app>.so | C code for a port driver or NIF shared library |
mibs/*.mib | priv/mibs/*.bin | SNMP mib files |
src/*.xrl | src/*.erl | Leex analyzer generator files |
src/*.yrl | src/*.erl | Yecc parser generator files |
asn1/*.asn1 | src/*.erl | ASN-1 files |
templates/*.dtl | ebin/*_dtl.beam | ErlyDTL template files (requires ErlyDTL to be installed) |
src/*.lfe | ebin/*.beam | LFE source files (requires LFE to be installed) |
src/*.peg | ebin/*.beam | Neotoma PEG grammars (requires Neotoma to be installed) |
src/*.proto | ebin/*_pb.beam, include/*_pb.hrl | Protocol Buffers specifications (requires protobuffs to be installed) |
Options for the various commands are given in the rebar.config configuration file. They are listed, below.
Command | Options | Description |
---|---|---|
compile | erl_first_files | The list of erlang source files that should be compiled ahead of any other (for example, behavior modules) |
compile | erl_opts | The options supported by the compile module, as described here |
compile | mib_first_files | The list of mib files that should be compiled ahead of any other (for example, RFC mibs which are referenced in a mib file's IMPORTS section) |
compile | src_dirs | List of additional directories (beyond the src directory) containing Erlang source files |
compile | erlydtl_opts | See ErlyDTL for details on the supported options |
clean | clean_files | List of files to delete; this is in addition to the files deleted by the clean command for a specific module |
doc | edoc_opts | The options supported by the edoc module, as described here |
escriptize | escript_name | The output filename for the escript (may include directories) |
escriptize | escript_incl_apps | A list of other applications to include in the escript archive |
escriptize | escript_shebang | The shebang line to prepend to the escript file (defaults to "#!/usr/bin/env escript\n") |
escriptize | escript_comment | A comment to add at the top of the escript file (defaults to "%%\n") |
escriptize | escript_emu_args | Arguments to pass to the Erlang emulator when running the escript, as described here (defaults to "%%!\n") |
eunit | eunit_opts | The options supported by the eunit module, as described here |
eunit | cover_enabled | Enable coverage analysis of Erlang programs |
eunit | eunit_compile_opts | Same options as erl_opts to be used for eunit specific compile settings in addition to erl_opts |
get-deps, delete-deps | deps_dir | Specify alternative directory for storing deps |
get-deps, delete-deps | deps | List of dependencies |
generate | target_dir | Target directory |
generate | overlay_vars | Overlay variables file |
xref | xref_warnings | Enable xref warnings |
xref | xref_checks | The options supported by the xref module analyze/2 functions, as described here |