为什么导入 clojure.spec.alpha 出错?
Why there is error in importing clojure.spec.alpha?
我有一个具有以下依赖项的 boot-clj 项目,
:dependencies '[[org.clojure/clojure "RELEASE"]
[adzerk/boot-test "RELEASE" :scope "test"]]
在那个项目下,我 运行 boot repl
正在尝试 clojure.spec
。
作为第一步,我尝试使用
导入所需的依赖项
(require '[clojure.spec.alpha :as s])
这样做时,出现以下错误,
java.lang.IllegalStateException: Attempting to call unbound fn: #'clojure.core/ident?
java.lang.ExceptionInInitializerError:
这是什么意思?以及如何修复它?
尝试以下操作:
[org.clojure/clojure "1.10.1"]
[adzerk/boot-test "1.2.0"]
使用 "RELEASE"
而不是具体的版本号是有问题的,因为它会导致不可重复的构建。
我还建议偶尔使用 lein-ancient
以在需要更新依赖项版本时通知您。
https://github.com/xsc/lein-ancient
您可以在此处找到更多信息:
How do I tell Maven to use the latest version of a dependency?
当 运行 boot repl
,
时,我没有注意到以下错误
Classpath conflict: org.clojure/clojure version 1.8.0 already loaded,
NOT loading version 1.10.1
按照建议 ,我必须添加 boot.properties
内容 BOOT_CLOJURE_VERSION=1.10.1
才能解决它。
澄清一下,难怪规范在上面的 REPL 中不起作用,因为规范需要 Clojure 1.9.0 或更高版本。
错误的原因可能是 clojure.core/ident?
在 1.8.0
中不可用
我有一个具有以下依赖项的 boot-clj 项目,
:dependencies '[[org.clojure/clojure "RELEASE"]
[adzerk/boot-test "RELEASE" :scope "test"]]
在那个项目下,我 运行 boot repl
正在尝试 clojure.spec
。
作为第一步,我尝试使用
导入所需的依赖项(require '[clojure.spec.alpha :as s])
这样做时,出现以下错误,
java.lang.IllegalStateException: Attempting to call unbound fn: #'clojure.core/ident?
java.lang.ExceptionInInitializerError:
这是什么意思?以及如何修复它?
尝试以下操作:
[org.clojure/clojure "1.10.1"]
[adzerk/boot-test "1.2.0"]
使用 "RELEASE"
而不是具体的版本号是有问题的,因为它会导致不可重复的构建。
我还建议偶尔使用 lein-ancient
以在需要更新依赖项版本时通知您。
https://github.com/xsc/lein-ancient
您可以在此处找到更多信息:
How do I tell Maven to use the latest version of a dependency?
当 运行 boot repl
,
Classpath conflict: org.clojure/clojure version 1.8.0 already loaded, NOT loading version 1.10.1
按照建议 boot.properties
内容 BOOT_CLOJURE_VERSION=1.10.1
才能解决它。
澄清一下,难怪规范在上面的 REPL 中不起作用,因为规范需要 Clojure 1.9.0 或更高版本。
错误的原因可能是 clojure.core/ident?
在 1.8.0