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*.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 的内容
{:用户 {:插件 [[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{:阶段 :编译语法检查, :行号 1, :列号 1, :源 "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 版本完全不同。这可能就是问题所在吗?
by
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
by
谢谢!
lein repl 已经恢复,cider-jack-in 也可以正常工作。
但 cider-jack-in 告诉我,我应该升级 cider。
我该如何安全地升级?我应该关注哪个版本?
by
对于 Emacs/CIDER 我不清楚,对不起。我很多年没有使用过那些了。
by
没关系。出于好奇 - 你使用的是什么编辑器/IDE?
by
我大约四五年前从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“做了所有这些”)。
...