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 服务器时的输出中获取端口号。


编辑
谢谢。使用和我的回答中一样的混合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`

这个与repl和lein(使用repl)的区别在于,那些将我带到我的项目的主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`
...