Build tools
In this chapter we are going to look at how the various build tools handle different tasks.
Some tasks provided by these tools are language-specific. Others can be used with several languages. Look for these icons:
This task is Erlang-specific (an Erlang-only project will be created, only Erlang files will be processed etc.)
This task is Elixir-specific (an Elixir-only project will be created, only Elixir files will be processed etc.)
TODO: LFE logo
- TODO: Efene logo
Overview
Rebar3
- Website: [http://www.rebar3.org]
- Documentation: [http://www.rebar3.org/docs/]
- Contributing: [https://github.com/rebar/rebar3/blob/master/CONTRIBUTING.md]
Features
- Erlang-based
- Build and test OTP-structured projects
- Build releases
- Dependency-management and dependency tracking
- Plugins
- Package management: integrated with hex.pm
- Command-line
Configuration
rebar.conf
in the project root. Configuration is specified in Erlanf terms.
Command line help
rebar3 help
For specific tasks
rebar3 help <TASK>
erlang.mk
- Website: [http://erlang.mk]
- Documentation: [http://erlang.mk/guide/index.html]
- Contributing: [http://erlang.mk/guide/contributing.html]
Features
- Make-based
- Build any configuration (as long as there is a Makefile)
- Build releases
- Dependency-management and dependency tracking
- Plugins
- Package management: integrated package list
- Command-line
Configuration
Custom Makefile
in project root. Regular Makefile instructions.
Command line help
make -f erlang.mk help
Or, if you have erlang.mk
included in your Makefile
make help
mix
- Bundled with Elixir.
- Documentation: [http://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html]
- Contributing: see important links
- Command-line
Features
- Elixir-based
- Build and test Elixir projects
- Dependency-management and dependency tracking
- Plugins
- Package management: integrated with hex.pm
Configuration
mix.exs
in project root. Tasks written in Elixir.
Command line help
mix help
Specific tasks
mix help <TASK>