使用 lein ring 服务器,如何切换到除 ring-jetty-adapter 之外的另一个适配器

Using lein ring server, how to switch to another adapter than ring-jetty-adapter

给定一个简单的网络应用程序,例如

(ns webtest.handler
  (:require [compojure.core :refer :all]
            [compojure.route :as route]
            [ring.middleware.defaults :refer [wrap-defaults site-defaults]]))

(defroutes app-routes
           (GET "/" [] "Hello World")
           (route/not-found "Not Found"))

(def app
  (-> (wrap-defaults app-routes site-defaults)))

可以使用 lein ring server 启动,如何调整项目以将码头适配器切换为另一个环形适配器,例如 undertow 或 http-kit?

作为参考,这里是正在使用的 lein project.clj 的摘录:

  :dependencies [[org.clojure/clojure "1.9.0"]
                 [ring "1.8.1" :exclusions [ring/ring-jetty-adapter]]
                 [luminus/ring-undertow-adapter "1.1.0"]
                 [ring/ring-defaults "0.3.2"]
                 [compojure "1.6.1"]]
  :plugins [[lein-ring "0.12.5"]]
  :ring {:handler webtest.handler/app}

您可以使用 :adapter 键。

最后我测试了,不,标签 :adapter 只允许传递 ring.jetty.adapter 的选项。 分析源码后,没有切换适配器的可能。

这里是插件作者对类似查询的回复: