2013-11-01 44 views
1

我从假设未来的的DEP一个Erlang项目应包括符号链接指向其他项目和应用程序,因此从该项目的所有模块都可以访问/可见文件夹中。如何在Erlang项目中正确使用deps文件夹?

例如,我的项目命名为project_final应该从project_aapplication_b接入模块。它们的目录结构如下:

注意:因为我使用的是GIT,所以项目具有双重结构,因此它们不是彼此的直接兄弟,而是放在/ projects/project_X/projectX下/等...我相信这是一个问题。有什么更好的建议如何管理?

/项目/ project_a/project_a:包含(EBIN,包括SRC) /项目/ application_b/application_b:包含(EBIN,包括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:测试模块出口和正确的。

+0

如果我不使用螺纹钢,RichardC建议不要使用deps(代替使用lib dir)。尽管在上面的问题中,要解决的问题是,我能够使用ERL_LIB的其他常用路径正确运行,例如ERL_LIBS“。:./ myprojectname/deps”,其中deps(或称为“lib”,无论您想要调用它)是所有相关应用程序和项目的共同父项。 – gextra

回答

6

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

相关问题