В идеале вы используете сервер REPL, который позволит вам загружать новый код Clojure в ваше приложение по желанию. В этом случае вам нужно просто изменить рабочий процесс на:
- проблема с уведомлением
- перейти в редактор Clojure
- Загрузка нового кода в работающее приложение
- Зайдите в браузер, нажмите обновить.
Если вы используете Maven, вы можете использовать maven-jetty-plugin для автоматической перезагрузки вашего веб-приложения при изменении его исходных файлов. См. этот пост для получения дополнительной информации.
Еще один вариант - постоянно пытаться перезагрузить ваш код Clojure. Примерно так, возможно:
(defn reload
([] (reload #"."))
([ns-pattern]
(doseq [ns (all-ns)
:let [ns (.name ns)]
:when (re-seq ns-pattern (str ns))]
(require ns :reload))))
В любой имеющийся у вас код, который запускает ваше веб-приложение, или в основной инициализации сервлета и т. Д., Добавьте что-то вроде:
(future (loop []
(Thread/sleep 5000)
(reload) ;; optionally specify a regex to match only your app's namespaces here
(recur)))
Определенно не то, что вы хотите использовать в производстве. Я бы предпочел использовать правильный удаленный REPL в каждом случае, но вышеперечисленное поможет вам.