编辑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().

其他提示

你可能会看 钢筋 作为建筑工具。 make:all/0 和整体 制作 模块也可以提供帮助。要从外壳中明确重新加载一个模块,您可以使用 l(Module). 。最后,您可能也有兴趣创建一个Erlang 发布 “包装”所有Erlang应用程序。

我使用的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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top