请在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 文件的内容
{: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 版本完全不同。这会是问题吗?
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 “做所有这些”)。
...