我如何制作nrepl

我想要的是:

我在远程站点上有一个clojure程序,我们称之为mccarthy 。 我想要做的是从我的笔记本电脑连接到nrepl-ritz ,最好使用nrepl-ritz-jack-in 。 千斤顶在本地程序中工作正常,但似乎没有连接到远程程序。

尝试1

Cx Cf在/mccarthy:code/program/project.clj

(require 'nrepl-ritz)

Mx nrepl-ritz-jack-in

结果

Emacs似乎挂起。 如果我去*nrepl-server*缓冲区,我看到这个:

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.flatland.drip.Main.invoke(Main.java:117)
    at org.flatland.drip.Main.start(Main.java:88)
    at org.flatland.drip.Main.main(Main.java:64)
Caused by: java.lang.AssertionError: Assert failed: project
    at leiningen.ritz_nrepl$start_jpda_server.invoke(ritz_nrepl.clj:23)
    at leiningen.ritz_nrepl$ritz_nrepl.doInvoke(ritz_nrepl.clj:95)

(还有很多其他线路......)

我在我的笔记本电脑上使用drip ,但没有使用mccarthy ,所以显然nrepl-ritz-jack-in没有检测到它是远程文件。 然而,在这种情况下,普通的旧式nrepl-jack-in将按预期工作。

尝试2

我也尝试在mccarthy使用lein开始nrepl-ritz

mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874

从我的笔记本电脑,我转发端口,因此本地42874连接到42874mccarthy

ssh -L 42874:localhost:42874 -N mccarthy

然后,从我当地的Emacs:

(require 'nrepl-ritz)

Mx nrepl

主机: 127.0.0.1

港口: 42874

这给了我一个连接:

; nREPL 0.1.7-preview
user> 

所以为了测试它,我跑了

Mx nrepl-ritz-threads

它给了我一个很好的线程表。

Mx nrepl-ritz-break-on-exception

user> (/ 1 0)

结果

这个挂起,但有时会显示一个隐藏的调试缓冲区,可用一些重新启动。 如果我告诉它将异常传递回程序,它永远不会将控制权交还给REPL。

我做了大量的搜索,但一直没能得到比“确保lein在你的路上”更具体的东西(而且我在两台机器上都这样做了)。


如果repl仍然从前一个苹果酒插孔运行,则应该使用cidercommand连接到正在运行的实例,或者在开始新实例之前停止前一个操作。

从这里`Clojure - 连接问题重新运行苹果酒插孔

另见https://devcenter.heroku.com/articles/debugging-clojure

链接地址: http://www.djcxy.com/p/6575.html

上一篇: How can I make nrepl

下一篇: Is it possible to make abstract classes in Python?