我的Clojure导入失败,为什么?

3
我在IntelliJ中运行Clojure 1.3和contrib 1.1。我的程序只有一行代码。
(use 'clojure.contrib.prxml)

运行时我遇到了以下错误

Exception in thread "main" java.lang.RuntimeException: java.lang.NoSuchMethodError: clojure.lang.RestFn.<init>(I)V

对于Clojure 1.3项目,prxml.clj可以直接从contrib中复制如此 - Sridhar Ratnakumar
3个回答

6

我正在使用Clojure 1.3和contrib 1.1

问题就出在这里。Clojure和contrib版本是相互关联的,在不同的版本之间不兼容。

更重要的是,从1.3开始,contrib已经被分成了许多较小的库,因此没有任何版本的“单体contrib”可以与1.3一起使用。


5
除了回答contrib 1.1与clojure 1.3不兼容之外,还可以从这里获得信息:
引用:

clojure-contrib的版本与Clojure的版本匹配。

如果您正在使用Clojure 1.0,请使用clojure-contrib 1.0。

如果您正在使用Clojure 1.1,则使用clojure-contrib 1.1。

如果您正在使用Clojure 1.2,则使用clojure-contrib 1.2或新的modular Contrib库。

如果您正在使用Clojure 1.3,则使用新的modular Contrib库。

截至本回复日期,我不确定是否有与clojure-1.3兼容的clojure.contrib.prxml的版本(如果我错了,请纠正我)。

我建议使用 clojure-1.2.1clojure-contrib 1.2.0


2

调用在Clojure 1.2和Contrib 1.2下没有问题。

如果您不需要使用1.3特定功能,建议暂时继续使用1.2版本,直到Contrib作者正确地过渡到1.3版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接