Пока я изучаю OTP, я делал много изменений в файлах .app и .erl и повторно запускал свое приложение, чтобы увидеть эффект от изменений.как перезагрузить весь код otp при разработке приложения otp?
Я попробовал следующую последовательность команд, чтобы забрать все мои новые изменения, но это не похоже на работу:
Скомпилировать файлы в исходных текстах ...
erlc -o ebin src/*.erl
... а затем это оболочка erlang:
application:stop(my_app).
application:unload(my_app).
application:load(my_app).
application:start(my_app).
Однако это не работает. Единственный способ, которым я нашел работу - выйти из оболочки erlang, перекомпилировать приложение, а затем запустить application:start(my_app).
.
Есть ли более простой способ поднять мои изменения?
Посмотрите на [mochiweb reloader] (https://github.com/oinksoft/reloader). После запуска процесс обнаруживает перекомпилированные файлы и автоматически перезагружает их. Рекомендуется только для стадии разработки. –
Обычно я делаю изменения только для одного или двух модулей за раз и перезаряжаю. Для этого просто выполнение 'c (module)' достаточно хорошо. Если ваш код структурирован как приложение OTP, то выполнение 'make: all()' очень удобно (вам нужен Emakefile, но базовый - 1 или 2 строки http://www.erlang.org/doc/man/ make.html). – zxq9