如何在Erlang项目中正确使用deps文件夹?

gex*_*tra 1 erlang

我假设erlang项目的deps文件夹应该包含指向其他项目和应用程序的符号链接,因此该项目的所有模块都可以访问/可见.

例如,名为project_final的 My项目应该从project_a和application_b访问模块.它们的目录结构如下:

注意:因为我使用的是GIT,所以项目有双重结构,因此它们不是彼此的直接兄弟,而是将它们放在/ projects/project_X/projectX/etc下...我相信这是一个问题.有什么更好的建议如何管理?

/ projects/project_a/project_a:contains(ebin,include,src)/ projects/application_b/application_b:contains(ebin,include,src)

/项目/ pro_final:

  • deps:具有指向project_a和application_b的符号链接
  • EBIN
  • 包括
  • src:包含使用project_a和applicabion_b模块函数的模块,但是给出了异常错误:未定义的函数.

我如何执行project_final测试模块是通过:

cd /projects
erl -env ERL_LIBS "."
myprojectfinalmodule:test().
** exception error: undefined function project_a:test/0
Run Code Online (Sandbox Code Playgroud)

project_a:test模块导出并正确.

Ric*_*rdC 6

deps目录是一个Rebar约定,除非通过Rebar,否则不应该以任何其他方式进行管理.如果您没有使用Rebar,请不要将依赖项放在应用程序的子目录中,而是将您的各个应用程序放在一个公共的lib /目录下,并使用ERL_LIBS环境变量(请参阅http://erlang.org/doc/man /code.html)告诉Erlang在哪里寻找应用程序.