请分享您的想法,访问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

使用 find 命令查找 clojure*.jar
/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-mode
.emacs.d/elpa/clojure-mode-20201126.1558

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

正在使用 cider* 进行查找
.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,也就是 Clovers,于是我就切换到 VS Code/Clover。

现在 Calva 有一个模式可以禁用其自己的 REPL UI,所以我现在有 VS Code/Clover+Calva(仍然使用 Clovers 来处理 REPL 相关的事情,但可以利用 Calva 提供的所有 LSP 驱动的静态代码分析,这真的很棒,而且我能够卸载一大堆其他的 VS Code 扩展,因为 Calva "做所有那些")。
...