如何让clojure webapp自动重新部署?
我正在用Clojure和Vaadin开发一个Web应用程序,但我无法使应用程序自动部署,所以我只需在浏览器上按“刷新”。有什么想法吗?理想情况下,您使用的是REPL服务器,它允许您随意将新的Clojure代码加载到应用程序中。在这种情况下,只需将您的工作流程更改为:如何让clojure webapp自动重新部署?,clojure,vaadin,Clojure,Vaadin,我正在用Clojure和Vaadin开发一个Web应用程序,但我无法使应用程序自动部署,所以我只需在浏览器上按“刷新”。有什么想法吗?理想情况下,您使用的是REPL服务器,它允许您随意将新的Clojure代码加载到应用程序中。在这种情况下,只需将您的工作流程更改为: 注意问题 转到Clojure编辑器 将新代码加载到正在运行的应用程序中 进入浏览器,点击刷新 如果您使用的是Maven,您可以使用Maven jetty插件在更改源文件时自动重新加载Web应用程序。有关更多信息,请参阅 另一个选择是
(defn reload
([] (reload #"."))
([ns-pattern]
(doseq [ns (all-ns)
:let [ns (.name ns)]
:when (re-seq ns-pattern (str ns))]
(require ns :reload))))
在启动webapp的任何代码中,或在主servlet init中,等等,添加如下内容:
(future (loop []
(Thread/sleep 5000)
(reload) ;; optionally specify a regex to match only your app's namespaces here
(recur)))
绝对不是你想在生产中使用的东西。在任何情况下,我都希望使用合适的远程REPL,但上述方法都可以解决问题。我尝试过这种方法,但对Vaadin不起作用。你能提供更多的细节吗?嗨,我很抱歉,这是我在设置中的错误。是的,只要URL末尾有“?restartApplication”,浏览器刷新就可以工作