请在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?
大约四年或五年前,我从 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 "什么都做")。
...