Was ist der schnellste Weg, um eine Erlang-Anwendung zu bearbeiten, den Code zu kompilieren und das laufende Ergebnis zu sehen? Vorzugsweise im letzten Schritt in die Erlang-Shell springen.
Mein aktuelles Anfänger-Setup:
Gibt es einen schnelleren Weg? Übrigens. Mein Chefredakteur ist Emacs.
Hier ist mein Setup:
make
in das Quellverzeichnis ein. l()
in die Erlang-Shell eintippe. Sie können dieses und einige andere nützliche Makros hier finden: Ссылка
Es ist selten erforderlich, die gesamte Erlang-Anwendung neu zu starten. Das erneute Laden geänderter Module ist ein häufigerer Anwendungsfall und reicht normalerweise aus, um Ihre Änderungen zu übernehmen.
Betreffend Anwendungsstart: Wenn Ihre Anwendung von anderen Anwendungen abhängig ist, wird die Anwendung: start () fehlschlagen, bis Sie alle Abhängigkeiten starten. Aus diesem Grund ist es üblich, eine Hilfsfunktion <your-app-name>:start()
zu schreiben. Hier ist ein Beispiel . Eine weitere nützliche Funktion ist <your-app-name>:stop()
.
Mit all diesen angewendeten Techniken würde ein Workflow wie folgt aussehen:
<your-app-name>:start().
in Ihre Erlang-Shell ein. l()
ein.
Sie können sich Betonstahl als Bauwerkzeug anschauen. make:all/0
und das gesamte Modul make könnten ebenfalls hilfreich sein. Um ein Modul explizit von der Shell neu zu laden, können Sie l(Module)
verwenden. Schließlich könnten Sie auch daran interessiert sein, eine Erlang Veröffentlichung zu erstellen, die alle Ihre Erlang-Anwendungen umschließt.
Ich habe auch ein Skript erstellt, das die vm meine Anwendung und hilfreiche Tools startet. Das Skript wird nur für die Entwicklungszeit verwendet.
Um die geänderten Quellen und die kompilierten Bins neu zu laden, verwende ich den Reloader von mochiweb. Der Reloader beobachtet das bin-Verzeichnis und wenn es Änderungen gibt, lädt es die Module und führt die eunit-Tests aus, wenn Sie etwas drin haben.
Beispiel:
erl + A 5 + K wahrname @ 127.0.0.1 -pa $ PWD / ebin $ PWD / test $ PWD / deps / * / ebin -boot start_sasl -s reloader -s toolbar -s
was Sie auch versuchen können, ist erlbuild. Erlbuild ist eine einfache Anwendung, die im src-Verzeichnis nach geänderten Quelldateien sucht und, wenn sie Dateien findet, die Module erneut kompiliert und lädt. Nach dem Laden der Module führt erbubau die Tests der Module durch.
Sie finden das Projekt unter: Ссылка
~ Ulf