编辑Erlang应用程序,编译代码并查看运行结果的最快方法是什么?最好在最后一步跳进Erlang shell。
我目前的新手设置:
有更快的方法吗? BTW。我选择的编辑是Emacs。
答案 0 :(得分:12)
这是我的设置:
make
。l()
,一次加载所有已更改的模块。你可以在这里找到这个和其他一些有用的宏:http://www.snookles.com/erlang/user_default.erl 很少需要重启整个Erlang应用程序。重新加载更改的模块是一种更常见的用例,通常足以应用您的更改。
关于应用程序启动:如果您的应用程序依赖于其他应用程序,则应用程序:start()将失败,直到您启动所有依赖项。因此,编写辅助函数<your-app-name>:start()
是很常见的。这是一个example。另一个有用的功能是<your-app-name>:stop()
。
应用所有这些技术后,工作流程将如下所示:
<your-app-name>:start().
l()
。<your-app-name>:stop(), <your-app-name>:start().
答案 1 :(得分:2)
您可以将rebar视为构建工具。 make:all/0
和整个make模块也可以提供帮助。要从shell显式重新加载模块,您可以使用l(Module)
。最后,您可能还有兴趣创建一个Erlang release来“包装”所有Erlang应用程序。
答案 2 :(得分:2)
编辑和编译由我使用的IDE(带有erlide的Eclispe)完成。
我还创建了一个脚本,它启动了我的应用程序和有用的工具。该脚本仅用于开发时间。
为了重新加载已更改的源然后编译的bin,我使用mochiweb中的重新加载器。重新加载器观察bin目录,如果有变化,它会加载模块并运行eunit测试,如果你有一些内部。
示例:
erl + A 5 + K true -name @ 127.0.0.1 -pa $ PWD / ebin $ PWD / test $ PWD / deps / * / ebin -boot start_sasl -s reloader -s toolbar -s
答案 3 :(得分:1)
你还可以尝试的是erlbuild。 Erlbuild是一个简单的应用程序,它在src目录中查找已更改的源文件,如果找到某些文件,则会再次编译并加载模块。加载模块后,erlbuild运行模块的测试。
您可以在https://github.com/ulfa/erlbuild
下找到该项目〜乌尔夫