3

我假设 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)

/project/pro_final:

  • deps:具有指向 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 模块已导出并正确。

4

1 回答 1

7

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

于 2013-11-01T23:33:26.190 回答