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

欢迎!请查看关于页面以了解更多有关如何使用该页面信息。

0

我的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模式
.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 版本完全不同。这可能是问题所在吗?
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 没有头绪,抱歉。我已经多年没有使用它们了。
没关系。出于好奇心 - 你使用什么编辑器/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 "做了所有这些")。
欢迎使用 Clojure 问答,在这里您可以向 Clojure 社区的成员提问并获得回答。

分类

...