我假设erlang项目的 deps 文件夹应包含指向其他项目和应用程序的 symbolic links ,因此该项目的所有模块都可以访问/可见 .
例如,名为 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 :有 symbolic links 指向project_a和application_b
-
ebin
-
包括
-
src:包含使用project_a和applicabion_b模块函数的模块 but gives exception error: undefined function .
我如何执行 project_final 测试模块是通过:
cd /projects
erl -env ERL_LIBS "."
myprojectfinalmodule:test().
** exception error: undefined function project_a:test/0
project_a:test模块导出并正确 .
1 回答
deps目录是一个Rebar约定,除非通过Rebar,否则不应该以任何其他方式进行管理 . 如果您将依赖项放在应用程序的子目录中,请将您的各个应用程序放在一个公共的lib /目录下,并使用ERL_LIBS环境变量(请参阅http://erlang.org/doc/man/code.html)告诉Erlang在哪里查找应用程序 .