我假设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:
我如何执行 project_final 测试模块是:
cd /projects
erl -env ERL_LIBS "."
myprojectfinalmodule:test().
** exception error: undefined function project_a:test/0
project_a:测试模块已导出且正确。
答案 0 :(得分:6)
deps目录是一个Rebar约定,除非通过Rebar,否则不应该以任何其他方式进行管理。如果您没有使用Rebar,请不要将依赖项放在应用程序的子目录中,而是将您的各个应用程序放在一个公共的lib /目录下,并使用ERL_LIBS环境变量(请参阅http://erlang.org/doc/man/code.html)告诉Erlang在哪里寻找应用程序。