【发布时间】:2015-05-16 19:23:20
【问题描述】:
在学习 OTP 时,我一直在对 .app 和 .erl 文件进行大量更改并重新运行我的应用程序以查看更改的效果。
我已经尝试了以下命令序列来获取我的所有新更改,但它似乎不起作用:
编译 src 文件 ...
erlc -o ebin src/*.erl
...接下来是erlang shell:
application:stop(my_app).
application:unload(my_app).
application:load(my_app).
application:start(my_app).
但是,这似乎不起作用。我发现工作的唯一方法是退出 erlang shell,重新编译应用程序,然后运行 application:start(my_app).。
有没有更简单的方法来获取我的更改?
【问题讨论】:
-
看看mochiweb reloader。一旦启动,进程会检测重新编译的文件并自动重新加载它。建议仅用于开发阶段。
-
通常我一次只更改一两个模块并重新加载。为此,只需执行
c(module)就足够了。如果您的代码被构造为 OTP 应用程序,那么运行make:all()非常方便(您需要一个 Emakefile,但基本的文件是 1 或 2 行 erlang.org/doc/man/make.html)。
标签: erlang erlang-shell