Clojure と Vaadin で Web アプリケーションを開発していますが、アプリケーションを autoredploy にすることができないため、ブラウザーで更新を押すだけです。何か案は?
1 に答える
2
理想的には、新しい Clojure コードを自由にアプリケーションにロードできる REPL サーバーを使用しています。その場合、ワークフローを次のように変更するだけです。
- 問題に気づく
- Clojure エディタに移動
- 実行中のアプリケーションに新しいコードをロードする
- ブラウザに移動し、更新を押します。
Maven を使用している場合は、maven-jetty-plugin を使用して、ソース ファイルを変更したときに webapp を自動的にリロードできます。詳細については、この投稿を参照してください。
さらに別のオプションとして、Clojure コードのリロードを継続的に試行する方法があります。おそらく、次のようなものです。
(defn reload
([] (reload #"."))
([ns-pattern]
(doseq [ns (all-ns)
:let [ns (.name ns)]
:when (re-seq ns-pattern (str ns))]
(require ns :reload))))
Web アプリケーションを起動するコード、またはメインのサーブレット init などに、次のようなものを追加します。
(future (loop []
(Thread/sleep 5000)
(reload) ;; optionally specify a regex to match only your app's namespaces here
(recur)))
間違いなく、本番環境で使用したいものではありません。どのような場合でも適切なリモート REPL を使用することをお勧めしますが、上記で十分です。
于 2010-10-01T11:50:12.280 に答える