Multi-application Umbrella Projects
Learn how to create lightweight multi-application projects in Elixir.
It’s unfortunate that Erlang chose to call self-contained bundles of code applications. In many ways, they’re closer to being shared libraries. And as our projects grow, we may find ourselves wanting to split our code into multiple libraries, or applications.
Fortunately, mix
makes this painless. To illustrate the process, we’ll create a simple Elixir evaluator. Given a set of input lines, it’ll return the result of evaluating each. This’ll be one application. To test it, we’ll need to pass in lists of lines. We’ve already written a trivial ~l
sigil that creates lists of lines for us, so we’ll make that sigil code into a separate application.
Elixir calls these multi-application (multi-app) projects umbrella projects.
Create an umbrella project
We use mix new
to create an umbrella project, passing it the --umbrella
option.
$ mix new --umbrella eval
* creating README.md
* creating mix.exs
* creating apps
Compared to a normal mix
project, the umbrella is pretty lightweight with just a ...