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

时间:2013-11-01 21:44:57

标签: erlang

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

例如,名为 project_final 的我的项目应该从 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

project_a:测试模块已导出且正确。

1 个答案:

答案 0 :(得分:6)

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