Ada*_*deg 6 namespaces clojure
是否有一种惯用的方法来获取可用的命名空间?
(all-ns)仅返回已使用的命名空间.(Package/getPackages)返回可用的所有Java包import,但仅返回已使用的Clojure命名空间.
然后我偶然发现了这篇文章,但它使用了一些类路径魔法.
所以我想得到类似的东西,('clojure.core 'clojure.set ... 'clojure.contrib.accumulators 'clojure.contrib.condition ...)如果我在我的类路径上有clojure.jar和contrib.jar,但我还没有使用任何东西.
你需要做"classpath magic".由于没有任何类型的注册表,您必须遍历类路径并查看每个clojure源文件以确定可用的命名空间.(如果文件不是AOT编译的.否则你需要一个不同的启发式.)
我认为链接帖子中使用的功能是最好的方法:clojure.contrib.find-namespaces/find-namespaces-on-classpath.
自Clojure 1.3.0以来已弃用; 现在用clojure.tools.namespace.find /发现的命名空间和clojure.java.classpath /类路径从http://github.com/clojure/java.classpath