今天早上我在这里找到了一个解决方案:
https://github.com/alco/erlang-mix-project
为什么这个链接回答这个问题本质上是:
1.- 我们在 rssutil/ 下有一个 elixir 主项目
2.- 我们有一个 myerlib.erl erlang 库,我们需要从我们在 rssutil/lib/ 下的 elixir 代码中使用它
3.- 一种解决方案是创建 rssutil/src/ 并复制 myerlib.erl 并编译,就像第一个答案之前告诉我们的那样。
4.- 但我们想像 elixir proyects 一样管理我们的 erlang 库。为此,我们需要 elixir,将 myerlib erlang 库视为 elixir proyect。
5.- 然后在 rssutil/mix.exs 中像 dep 一样添加 myerlib
defp deps do
[..........
{:myerlib, path:deps/myerlib"}
]
end
6.- 我们需要使用下一个 mix.exs 文件创建 rssutil/deps/myliberl/:
defmodule Myerlib.Mixfile do
use Mix.Project
def project do
[app: :myerlib,
version: "0.0.1",
language: :erlang,
deps: deps]
end
def application do
[applications: [], mod: {:myerlib, []}]
end
defp deps do
[
{:mix_erlang_tasks, "0.1.0"},
]
end
end
观察语言现在是 erlang,我们需要像 myerlib 的 dep/
mix_erlang_tasks
7.- 还使用您的“旧”erlang 代码创建 rssutil/deps/myerlib/src/myerlib.erl
8.- 在您拥有最后一个 mix.exs 文件的 rssutil/deps/myerlib/ 目录中,写入
$ mix deps.get
$ mix compile
9.- 转到 rssutil/ 目录,也可以
$ mix deps.get
$ iex -S mix
10.- 最后,您可以在 myerlib.erl 中调用 erlang 的函数:
iex> :myerlib.any_function_you_know_to_have_here(...)
就是这样。
无论如何,非常感谢。