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或从启动nREPL服务器时的Leiningen输出中。


编辑
谢谢。使用与我的回答相同的shell混合方式,我成功实现了与`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`

这个与reply和lein(使用reply)的区别是,这些将我带到了项目的main 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`
...