あなたが望んでいるのは、jetty サーバーを実行し、emacs 内からコードを変更するときにコードをロードまたはリロードすることであると仮定します。すでに与えられたアドバイスは良いものですが、始めるときには必要以上に複雑になるかもしれません。私のアドバイスは、最初にデフォルトの環境とワークフローをセットアップする lein 用のテンプレートのいくつかを利用することです。その後、自分に合ったワークフローが得られるまで、さらに学習しながらこのデフォルトを調整できます。私のお勧めは、デフォルトの Compojure テンプレートから始めることです。
lein new compojure my-project
これにより、基本的なリング ライブラリと compojure ライブラリ、lein プラグイン、および単純な開発プロファイルを含む必要最小限のプロジェクトが作成されます。
src/my_project/handler.clj ファイルを編集して、ring.middleware.reload ミドルウェアを追加します。
(ns my-project.handler
(:require [compojure.core :refer :all]
[compojure.route :as route]
[ring.middleware.reload :refer [wrap-reload]]
[ring.middleware.defaults :refer [wrap-defaults site-defaults]]))
(defroutes app-routes
(GET "/" [] "Hello World")
(route/not-found "Not Found"))
(def app
(-> app-routes
wrap-reload
(wrap-defaults site-defaults)))
wrap-reload ミドルウェアを使用すると、コードが変更されるとコードが再ロードされます。コードの変更を有効にするために jetty サーバーを再起動する必要はありません。ページをリロードするだけです。
ターミナルで次のいずれかを実行します
lein ring server
また
lein ring server-headless
これにより、ポート 3000 でリッスンする jetty サーバーが開始されます。その後、emacs 内から、コードの記述中に使用する cider repl を開くことができます。project.clj ファイルを変更しない限り、サーバー プロセスを再起動する必要はありません。サイダープロセスと同じです。
次に、これに慣れたら、lein-ring のドキュメントを参照してください。そこには、プロジェクト内で repl.clj ファイルをセットアップする方法に関する情報があります。それを行うと、次のようなことができるようになります
lein repl
そして、そのreplの中から、次のようなことをします
(start-server)
サーバーを起動します。その後、emacs に切り替えることができ、cider-jack-in を実行する代わりに、cider-connect を実行できます。これにより、2 番目の repl セッションを開始するのではなく、既に実行中の repl に接続されます。後で、clojurescript も調べ始めることにした場合は、clojure+clojurescript アプリのデフォルト テンプレートのいくつかを確認できます。私はfigwheelがとても好きで、試薬をかなり使用しているので、試薬テンプレートも非常に優れています.
そこにはかなりの数のleinテンプレートがあり、それらを実行して、それらが何をするかを見るだけで本当に便利だと思います. 次に、好きな機能/オプションを厳選する傾向があります。