Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
clojure.contrib中的某些代码与clojure 1.3冲突?_Clojure - Fatal编程技术网

clojure.contrib中的某些代码与clojure 1.3冲突?

clojure.contrib中的某些代码与clojure 1.3冲突?,clojure,Clojure,由于Clojure 1.3“耳罩VAR不再自动被认为是动态的”,Clojure.contrib中的一些代码依赖于此功能,它们不再工作。例如clojure.contrib.sql中的db Warning: *db* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *db* or change

由于Clojure 1.3“耳罩VAR不再自动被认为是动态的”,Clojure.contrib中的一些代码依赖于此功能,它们不再工作。例如clojure.contrib.sql中的db

 Warning: *db* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *db* or change the name.
 Exception in thread "main" java.lang.RuntimeException: java.lang.ExceptionInInitializerError

contrib库仍在verion 1.2中。如何解决这个问题?或者是否有某种alpha或预发布版本的contrib库可以与Clojure 1.3配合使用?

当Clojure迁移到1.3时,决定放弃单一contrib库,即一个包含大量独立项目的contrib库。原因是一些图书馆已经被废弃,很难让人们升级到1.3版本

此外,一些图书馆也更改了名称。可在此处找到概述:
特别是contrib.sql库已被重命名为
java.jdbc
,现在生活在这里

通常vars都被屏蔽了,不希望反弹,因此没有它一切都可以正常工作

也就是说,您可以按如下方式重新定义旧的var,使其可以动态地重新绑定:

(in-ns 'other.ns) (def ^:dynamic *foo* *foo*) (在ns’other.ns中) (定义^:动态*foo**foo*)
谢谢你,保罗。切换到java.jdbc模块,问题就解决了。