Leiningen nREPL通过吊桥连接到远程repl

时间:2017-11-06 19:44:17

标签: clojure leiningen nrepl

我尝试连接到正在运行的clojure应用程序包作为uberjar。我在我的project.clj中添加了[com.cemerick/drawbridge "0.0.7"]。但是当我尝试与lein repl :connect http://ip:port/repl建立联系时,就好像它甚至没有连接一样。

我得到了一个堆栈跟踪:

java.io.FileNotFoundException: Could not locate cemerick/drawbridge/client__init.class or cemerick/drawbridge/client.clj on classpath.
at clojure.lang.RT.load (RT.java:456)
clojure.lang.RT.load (RT.java:419)
clojure.core$load$fn__5677.invoke (core.clj:5893)
clojure.core$load.invokeStatic (core.clj:5892)
clojure.core$load.doInvoke (core.clj:5876)
....
clojure.lang.AFn.applyToHelper (AFn.java:171)
clojure.lang.Var.applyTo (Var.java:700)
clojure.main.main (main.java:37)

但是当我运行lein classpath时,我可以在那里找到吊桥/root/.m2/repository/com/cemerick/drawbridge/0.0.7/drawbridge-0.0.7.jar

jar tf /root/.m2/repository/com/cemerick/drawbridge/0.0.7/drawbridge-0.0.7.jar
META-INF/MANIFEST.MF
META-INF/maven/com.cemerick/drawbridge/pom.xml
...
cemerick/drawbridge/client.clj

任何线索?

3 个答案:

答案 0 :(得分:1)

这看起来像Leiningen中的普通旧回归。我已将此提交为https://github.com/technomancy/leiningen/issues/2370

答案 1 :(得分:0)

在较旧的lein(clojure:lein-2.7.1)上测试了相同的命令,它看起来更好。服务器端可能有问题,但至少连接起来。

答案 2 :(得分:0)

Leiningen does not include Drawbridge anymore,您需要将其显式添加到插件中:

(defproject whatever "0.1.0-SNAPSHOT"
  :plugins [[nrepl/drawbridge "0.2.1"]]))

请参见nREPL over HTTP(s) with Drawbridge in 2020