如何从Elixir调用第三方Erlang模块?

Fil*_*und 2 elixir-mix elixir

我有一个使用混合的Elixir项目.我已经使用了一些内置的erlang模块,但现在我需要使用我在Github上找到的第三方模块.

如何从Elixir导入,构建和调用第三方Erlang模块?

编辑:我现在感兴趣的模块位于https://github.com/aggelgian/erlang-algorithms,特别是edmonds_karp模块.

Har*_*cas 7

在elixir中添加第三方erlang包非常容易.如果包不在Hex.pm上,那么你可以使用github url.例如mix.exs:

defp deps do
  [
    {:erlang_algorithms, github: 'aggelgian/erlang-algorithms'},
  ]
end
Run Code Online (Sandbox Code Playgroud)

然后你就可以跑了 mix deps.get

但是在您的情况下,这将失败,因为包没有应用程序文件.为了解决这个变化,上面的内容是:

  defp deps do
    [
      {:erlang_algorithms, github: 'aggelgian/erlang-algorithms', app: false},
    ]
  end
Run Code Online (Sandbox Code Playgroud)

然后又跑了mix deps.get.

现在您可以访问包中提供的erlang模块:

例如

:dfs.run(arg1, arg2)
Run Code Online (Sandbox Code Playgroud)