A rebar plugin for building Elixir dependencies with mix.
Requirements:
- rebar3 3.7.0 or above
- Elixir 1.7.4 or above, unless your Elixir dependencies have no transitive compile time dependencies in which case any version starting with 1.7.0 may work.
mix local.hex
, while mix hex isn't used, mix checks for it and will block with a messageCould not find Hex, which is needed to build dependency ...
if it isn't found. Runningmix local.hex
will install mix's hex script archive and make the check happy.
Add the plugin to your rebar config:
{plugins, [rebar_mix]}.
{provider_hooks, [
{pre, [{compile, {mix, find_elixir_libs}}]},
{post, [{compile, {mix, consolidate_protocols}}]}
]}.
The find_elixir_libs
hook automatically adds Elixir libraries into load path, it requires elixir
binary to be in the path.
The consolidate_protocols
hook places beams in _build/<profile>/consolidated
that will need to be included in a release when built. Using:
{overlay, [{copy, "{{base_dir}}/consolidated", "releases/{{release_version}}/consolidated"}]}
And update your vm.args.src
to include:
-pa releases/${REL_VSN}/consolidated