2013-11-01 92 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在哪裏查找應用程序。

相關問題