将我的erlang库模块myerlib.erl放到elixir树目录中以便从elixir模块调用的位置

use*_*815 6 elixir

我有myerlib/src/myerlib.erl erlang库模块,我需要从Elixir模块调用它的函数.从elixir代码调用myerlib模块函数我可以写:myerlib.function(.....)但是

如果我将myerlib子目录放在deps/elixir目录下并使用mix.exs:

def deps do
  [
    {:myerlib, path: "deps/myerlib"}
    # ...
  ]
end
Run Code Online (Sandbox Code Playgroud)

然后,当我这样做时,iex -S mix我收到此错误:

***(混合):路径选项只能用于混合项目,无效的路径依赖关系:myerlib

Gaz*_*ler 9

如果你有一个src包含.erl文件的目录,那么它们将在你运行时编译mix.compile(用mix compile或者隐含的类似iex -S mix).

您可以在mix compile.erlang任务中看到这一点.这可以是默认路径src,但可以通过修改文件中的erlc_paths选项来更改此路径mix.exs.

def project do
  [app: :my_app,
   version: "0.0.1",
   elixir: "~> 1.0",
   erlc_paths: ["foo"], # ADD THIS OPTION
   build_embedded: Mix.env == :prod,
   start_permanent: Mix.env == :prod,
   deps: deps]
end
Run Code Online (Sandbox Code Playgroud)