barrel-db / rebar3_elixir_compile

Elixir rebar3 compiler plugin
Other
90 stars 29 forks source link

rebar3_elixir_compile

Hex.pm A rebar3 elixir compiler plugin

rebar3_elixir_compile in action

Usage

Add the plugin to your rebar config:

{erl_opts, [debug_info]}.

{plugins, [
    { rebar3_elixir_compile, ".*", {git, "https://github.com/barrel-db/rebar3_elixir_compile.git", {branch, "master"}}}
]}.

{deps, [
   {faker, {elixir, "faker" ,"0.6.0"}}
]}.

{provider_hooks, [
  {pre, [{compile, {ex, compile}}]}
]}.

{elixir_opts, 
  [
    {env, dev}
  ]
}.

Full example in https://github.com/barrel-db/rebar3_elixir_compile/tree/master/examples/demo

Directory structure

The plugin expects your mix applications to be present in ./elixir_libs. All mix apps are automatically compiled along with their dependencies.

The plugin also creates ./_elixir_build to fetch and compile your dependencies specified in rebar.config.

Release

rebar3_elixir_compile supports releases out of the box. You just need to add a pre release provider hook in your rebar.config

 {pre, [{release, {ex, compile}}]}  

Elixir lib dir

rebar3_elixir_compile has auto discovery feature. It automatically loads Elixir, Mix and Logger from your Elixir installation.

If you want to use the apps from another directory, you can add the following to elixir_opts in your rebar.config

{lib_dir, "/usr/local/lib/elixir/lib/"},
{bin_dir, "/usr/local/bin/"}