2012-11-09 69 views
0

我在這個過程中或學習erlang OTP和螺紋鋼,我已經使用一些小的示例應用程序使用一些依賴:牛仔和啤酒。使用螺紋鋼,開發環境的erlang OTP應用程序

我已發出

rebar get-deps 
rebar compile 

,事情進行得很順利。現在我想啓動我的控制檯來測試周圍的東西,但是我不明白如何啓動依賴項應用程序。

我試着發出

rebar generate 

爲了獲得射擊了應用程序的所有編排,即使它是大材小用只是開發測試,但我悲慘地失敗得到以下轉儲

Crash dump was written to: erl_crash.dump 
eheap_alloc: Cannot allocate 1459620480 bytes of memory (of type "old_heap"). 
Aborted 

ebin目錄只包含我編寫的應用程序的光束文件,但不包含依賴關係,我看到依賴項在主應用程序deps目錄中有自己的ebin目錄,我該如何才能讓它們在控制檯中可用以啓動它們?

我將不勝感激,如果有人可以提供一些線索,以常見的做法就是與多個OTP應用程序的開發ENV。

我已經閱讀了一些教程,但他們主要針對的是鋼筋釋放週期而不是開發過程。

TIA

+0

我發現** chrash轉儲**通過'螺紋鋼generate'產生的原因,我用的是鋼筋下載的腳本,而不是建築螺紋鋼自己,包括它在我的道路,所以我以後正確建螺紋鋼我的平臺它不再需要一生的時間來完成發佈,我可以成功啓動所有應用程序。所以我的問題轉移到:使用'rebar generate'是通用的方式來啓動您的控制檯並測試您的開發進度? – lfurrea

+0

我不知道它是否很常見,但我這樣做是爲了以與部署時運行相同的方式來測試應用程序。 – kjw0188

回答

0

在你的情況,你拉入DEPS目錄模塊通常應該從應用程序代碼中調用 - 和你的應用程序可以使用應用Erlang的外殼典型地調用:開始/ 1功能。如果您還沒有,我強烈建議您閱讀Francesco Cesarini的優秀書籍Erlang編程的第12章「OTP行爲」 - 這對您嘗試的內容來說是一個非常實用的介紹。

+1

https://github.com/basho/rebar/wiki/Release-handling - 描述使用你想要的鋼筋創建腳本:rel/app-name/bin/app-name start/stop – snwight

+0

確實,鋼筋腳本似乎工作得很好。只是最初我認爲發佈過程太重了,因爲在我的配置不當的環境中,它耗時太長,並且在中間崩潰。所以這似乎是常見的做法。關於您的第一個答案,請記住我們正在討論的符合OTP標準的應用程序是否正確?我希望能夠以合規的方式啓動它? – lfurrea

+0

我的印象是,鋼筋生成的應用程序啓動/停止腳本的確符合OTP標準,所以也許我誤解了一些重要的東西:) – snwight

相關問題