有没有一种惯用的方法来获取可以使用的可用名称空间?
(all-ns)
仅返回已使用的名称空间。(Package/getPackages)
返回所有可用的 Java 包import
,但仅限那些已使用的 Clojure 命名空间。
然后我偶然发现这个帖子 http://learnclojure.blogspot.com/2010/02/requiring-all-possible-namespaces.html,但它使用了一些类路径魔法。
所以我想要得到类似的东西('clojure.core 'clojure.set ... 'clojure.contrib.accumulators 'clojure.contrib.condition ...)
如果我的类路径中有 clojure.jar 和 contrib.jar,但我还没有使用任何东西。
您将需要执行“类路径魔法”。由于没有某种注册表,因此您必须遍历类路径并查看每个 clojure 源文件以确定哪些命名空间可用。 (如果文件不是 AOT 编译的。否则您将需要不同的启发式方法。)
我认为链接帖子中使用的函数是最好的方法:clojure.contrib.find-namespaces/find-namespaces-on-classpath
.
自 Clojure 1.3.0 起已弃用;现在使用 clojure.tools.namespace.find/find-namespaces 和 clojure.java.classpath/classpath 来自http://github.com/clojure/java.classpath http://github.com/clojure/java.classpath
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)