请在2024 Clojure现状调查中分享您的想法!

欢迎!请查看关于页面以获得更多关于如何工作的信息。

+1
Clojure CLI

使用 Leiningen,我可以使用以下方式连接到 nREPL 服务器

lein repl :connect

并且它会从 .nrepl-port 文件中获取端口,并把我带到 REPL 提示符。

使用 clojure,我假设我需要注入一些 nREPL 客户端依赖项并运行客户端等,所以我没想到它会如此简洁,但仍然,我该怎么做?

2个答案

+1

被选中
 
最佳答案

尝试以下方法

clj -Sdeps '{:deps {nrepl/nrepl {:mvn/version "0.5.3"}}}' -m nrepl.cmdline -c --host 127.0.0.1 --port PORT

您可以从.nrepl-port或从 Leiningen 启动 nREPL 服务器时的输出中获取端口号。


编辑
谢谢。使用与我在答案中所用的相同混合方式,我将它与 `lein repl :connect` 相当相等。

    clj -Sdeps '{:deps {nrepl/nrepl {:mvn/version "1.0.0"}}}' -m nrepl.cmdline -c --host 127.0.0.1 --port `< .nrepl-port`

与回复和lein(使用reply)的区别在于,那些让我进入项目的主要ns,而这一种将我放入`user`。一个小麻烦。我主要好奇reply是如何确定我的项目的主要ns的...
0

我离得到最接近的是使用reply和这个shell/clojure的混合

clojure -Sdeps '{:deps {reply/reply {:mvn/version "0.5.1"}}}' -M -m reply.main --attach `< .nrepl-port` 
此外,基于@sanel的回答,并利用我的项目对`nrepl`有指定的依赖...

    clj -M -m nrepl.cmdline -c --port `< .nrepl-port`
...