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



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

例如,名为 project_final 的"我的项目"应访问project_aapplication_b中的模块。它们的目录结构如下:

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

/

projects/project_a/project_a : 包含 ( ebin, include, src )/projects/application_b/application_b : 包含 ( ebin, include, src )

/

项目/pro_final:

  • 部门 :具有指向project_a和application_b的符号链接
  • 埃宾
  • 包括
  • 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:test 模块已导出并正确。

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

最新更新