2011-04-27 46 views
8

編輯Erlang應用程序,編譯代碼並查看運行結果的最快方法是什麼?最好在最後一步在Erlang shell中跳轉。加快Erlang編輯,編譯,運行/調試周期

我目前的新手設置:

  • ,編譯應用程序並啓動ERL外殼腳本。
  • 然後我輸入application:start(foo)。
  • 當我修復一個錯字時,我用c('module')重新編譯模塊並重新啓動應用程序。

有沒有更快的方法? BTW。我選擇的編輯器是Emacs。

回答

12

這裏是我的設置:

  • 在開發,我保持Erlang的外殼打開一個單獨的終端窗口。
  • 我從編輯器(使用組合鍵)開始編譯,或者只需在源目錄中輸入make即可。
  • 編譯完成後,我通過在Erlang shell中輸入l()來加載所有更改的模塊。你可以在這裏找到這個和其他一些有用的宏:http://www.snookles.com/erlang/user_default.erl

很少有需要重新啓動整個Erlang應用程序。重新加載已更改的模塊是一種更常見的用例,通常應用您的更改就足夠了。

關於應用程序啓動:如果您的應用程序依賴於其他應用程序,則應用程序:start()將會失敗,直到您啓動所有依賴項爲止。因此,編寫幫助函數<your-app-name>:start()是很常見的。這是一個example。另一個有用的功能是<your-app-name>:stop()

應用了所有這些技術,工作流程是這樣的:

  • 開始Erlang的外殼,並保持打開狀態;型號<your-app-name>:start().
  • 進行更改;運行編譯;在你的Erlang shell中輸入l()
  • 當更改需要重新啓動應用程序,鍵入<your-app-name>:stop(), <your-app-name>:start().
2

您可能會將rebar視爲構建工具。 make:all/0和整個make模塊也可以提供幫助。要明確從shell中重新加載模塊,您可以使用l(Module)。最後,您可能還有興趣創建一個Erlang release來「包裝」所有的Erlang應用程序。

2

編輯和編譯由IDE(Eclispe的與erlide),我用做。

我還創建了一個腳本,啓動虛擬機我的應用程序和有用的工具。該腳本僅用於開發時間。

對於重新加載更改的源代碼和編譯後的bin,我使用mochiweb中的reloader。重新加載器觀察bin目錄,如果有變化,它會加載模塊並運行eunit測試,如果你有一些內部的話。

實施例:

ERL + A 5 + K真-name @ 127.0.0.1 -PA $ PWD/EBIN $ PWD /測試$ PWD/DEPS/*/EBIN -boot start_sasl -s reloader -s工具欄-s

1

你還可以嘗試的是erlbuild。 Erlbuild是一個簡單的應用程序,它在src目錄中查找已更改的源文件,並且如果它找到某些文件,則它會再次編譯和加載模塊。加載模塊後,erlbuild運行模塊的測試。

下可以找到項目:https://github.com/ulfa/erlbuild

〜烏爾夫