2024 Clojure调查问卷中分享您的想法!

欢迎!请参阅关于页面以了解更多关于如何操作的信息。

0 投票
Clojure

我的Clojure/Lein/Cider组合损坏了。我想完全删除所有内容并重新安装,但不知道“所有内容”指什么。

感谢事先提供帮助,
Bruce

1 个答案

0 投票

答案将取决于您如何安装它们(以及您所使用的操作系统等)。

你好!感谢您的回应。

运行在
macOS Catalina 10.15.6
Java: OpenJDK运行环境(构建1.8.0_282-b08)

使用homebrew安装的lein
/usr/local/Cellar/leiningen/2.9.5/bin/lein

对clojure*进行find操作
/usr/local/Cellar/clojure/1.10.2.774/libexec/clojure-tools-1.10.2.774.jar
.m2/repository/org/clojure/clojure/1.3.0/clojure-1.3.0.jar
.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar
.m2/repository/org/clojure/clojure/1.8.0/clojure-1.8.0.jar
.m2/repository/clojure-complete/clojure-complete/0.2.4/clojure-complete-0.2.4.jar
.m2/repository/clojure-complete/clojure-complete/0.2.5/clojure-complete-0.2.5.jar

{以前尝试过玩Clojure}

emacs clojure模式
.emacs.d/elpa/clojure-mode-20201126.1558

~/.lein/profiles.clj的内容
{:user {:plugins [[cider/cider-nrepl "0.8.1"]]}%

对cider*进行find操作
.m2/repository/cider/cider-nrepl/0.8.1/cider-nrepl-0.8.1.jar
.emacs.d/elpa/cider-20210127.640

lein repl
编译出错。错误信息如下:
clojure.lang.Compiler$CompilerException: 编译出现语法错误,编译位置在 (cider/nrepl.clj:1:1)。
#:clojure.error{:phase :compile-syntax-check, :line 1, :column 1, :source "cider/nrepl.clj"}

随后是堆栈跟踪,其中中间是:
Caused by: java.io.FileNotFoundException: 无法在类路径中找到 clojure/tools/nrepl/server__init.class, clojure/tools/nrepl/server.clj 或 clojure/tools/nrepl/server.cljc。

以及更多的堆栈跟踪信息。

我想到,elpa下的cider版本完全不同。这可能是问题所在吗?
lein repl的问题在于,你在 ~/.lein/profiles.clj 文件中指定了一个非常旧的 cider-nrepl 版本,这个版本已经不再被 Clojure 支持。

首先尝试将 ~/.lein/profiles.clj 中的版本 0.8.1 更改为 0.25.8。

如果这样还不能运行 lein repl,只需删除你的 ~/.lein/profiles.clj 文件(包含不适当的插件或过时的插件)。

你已安装了最新的 Clojure CLI,因此你可以运行以下命令来获取 REPL:clj
谢谢!
lein repl 已恢复,cider-jack-in 也正常工作。
但 cider-jack-in 告诉我需要升级 cider。
如何安全升级?我应该关注哪个版本?
关于 Emacs/CIDER,很抱歉,我很多年没有使用了。
没问题。出于好奇,你使用什么编辑器/IDE?
大约四五年前,我从 Emacs/CIDER 切换到 Atom/ProtoREPL,然后 ProtoREPL 停止维护,所以我切换到了 Atom/Chlorine(因为我非常喜欢它,因为你只需要一个普通的 Socket REPL -- 没有任何依赖),然后 Chlorine 的作者去年将它移植到 VS Code,称为 Clover,然后我切换到了 VS Code/Clover。

现在 Calva 提供了一种模式来禁用其自己的 REPL UI,因此我现在有了 VS Code/Clover+Calva(仍然使用 Clover 来处理 REPL 相关的事情,但可以利用 Calva 从 LSP 驱动的静态代码分析中受益,这非常棒,我还能够卸载其他一些 VS Code 扩展,因为 Calva "什么都做了")。
...