题
编辑ERLANG应用程序,编译代码并查看运行结果的最快方法是什么?最好在最后一步跳入Erlang Shell。
我目前的新手设置:
- 编译应用程序并启动ERL Shell的脚本。
- 然后我输入应用程序:start(foo)。
- 当我修复错字时,我将模块用C(“模块”)重新编译,然后重新启动应用程序。
有更快的方法吗?顺便提一句。我选择的编辑是Emacs。
解决方案
这是我的设置:
- 在开发时,我将Erlang Shell保持在单独的终端窗口中。
- 我从编辑器开始编译(使用键组合),或者仅通过键入
make
在源目录中。 - 汇编后,我通过键入一次加载所有更改的模块
l()
在Erlang Shell中。您可以在这里找到这个和其他有用的宏: http://www.snookles.com/erlang/user_default.erl
很少需要重新启动整个Erlang应用程序。重新加载更改的模块是一个更常见的用例,通常足以应用您的更改。
关于应用程序的开始:如果您的应用程序取决于其他应用程序,则应用程序:start()将失败,直到您开始所有依赖项为止。因此,写一个辅助功能是常见的 <your-app-name>:start()
. 。这是一个 例子. 。另一个有用的功能是 <your-app-name>:stop()
.
使用所有这些技术,工作流程看起来像这样:
- 启动Erlang外壳并保持打开状态;类型
<your-app-name>:start().
- 做出改变;运行汇编;类型
l()
在您的Erlang外壳中。 - 当更改需要重新启动应用程序时,键入
<your-app-name>:stop(), <your-app-name>:start().
其他提示
我使用的IDE(带有Erlide的Eclispe)进行了编辑和编译。
我还创建了一个启动VM我的应用程序和有用工具的脚本。该脚本仅用于开发时间。
为了重新加载更改的来源,然后编译了垃圾箱,我使用Mochiweb的重新加载器。重新加载器观察垃圾箱dir,如果有更改,则加载moduls并运行EUNIT测试,如果您有内部。
例子:
erl +a 5 +k true -name @127.0.0.1 -pa $ pwd/ebin $ pwd/test $ pwd/deps/deps/*/ebin -boot start_sasl -s reloader -s reloader -s工具栏-s
您还可以尝试的是Erlbuild。 ERLBUILD是一个简单的应用程序,它在SRC目录中查看已更改的源文件,并且如果找到某些文件,则比它编译并再次加载模块。加载模块后,Erlbuild运行模块的测试。
您可以在下面找到该项目: https://github.com/ulfa/erlbuild
〜ulf