与lein classloader的类冲突 - .class over .clj?

时间:2013-06-10 12:20:11

标签: clojure classloader leiningen

如果我的leiningen类路径上有两个罐子:

a.jar 
b.jar

a.jar包含

c\d_init.class

b.jar包含

c\d.clj

然后我尝试在我的项目中加载c.d命名空间:

(ns e.core
  (:require [c.d :as resolutiontest]))

Clojure类加载器是否保证c\d_init.class将始终加载c\d.clj

1 个答案:

答案 0 :(得分:2)

基于代码here(Clojure 1.5.1),只要d__init.class的修改日期,d.clj文件就会加载d.clj。 }小于.class文件的那个。

 ...
 if((classURL != null &&
    (cljURL == null || lastModified(classURL, classfile) > lastModified(cljURL, cljfile)))
   || classURL == null) {
    try {
 ...