Clojure 2024 州调查! 中分享您的想法。

欢迎!请访问 关于 页面,以了解更多关于该工作方式的信息。

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的内容
{:user {: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?
by
我在大约四五年前从 Emacs/CIDER 切换到 Atom/ProtoREPL,然后 ProtoREPL 停止维护,所以我切换到 Atom/Chlorine(我真的非常喜欢因为它只需要一个普通的 Socket REPL——没有任何依赖项),然后去年 Chlorine 的作者将其移植到 VS Code 的 Clover 中,在那个时刻,我切换到 VS Code/Clover。

现在 Calva 有一种模式可以禁用其自己的 REPL UI,所以我现在有了 VS Code/Clover+Calva(仍然使用 Chlorine 来处理 REPL 事宜,但能够利用 Calva 提供的所有来自 LSP 驱动的静态代码分析的优点,这非常棒,并且我能够卸载一些其他的 VS Code 扩展,因为 Calva “做所有这些”)。
...