如何在Elixir / mix项目中加载Erlang模块?

时间:2018-06-17 13:41:47

标签: erlang elixir

我有一个由混合管理的Elixir项目。以iex -S mix启动时,我的lib文件夹中的所有Elixir模块都会被加载。 lib文件夹中.erl文件中的Erlang模块不会。

我想知道a)如何从我的Elixir代码中明确加载Erlang模块或b)我还需要做什么来混合自动加载Erlang模块。 (最好是两者;))

1 个答案:

答案 0 :(得分:2)

编译的Erlang模块将自动包含在内。如果你的本地erlang模块在lib/文件夹中,虽然问题可能是它没有被编译。

处理编译erlang模块的混合任务(mix compile.erlang)假定包含erlang模块的默认路径位于src/目录中。

如果您希望将其放在其他位置,可以通过:erlc_paths中项目配置中的mix.exs参数调整配置。一个简单的例子看起来像:

def project do
  [
    app: :test,
    version: "0.1.0",
    elixir: "~> 1.6",
    erlc_paths: ["lib"],
    start_permanent: Mix.env() == :prod,
    deps: deps()
  ]
end