评论由:stuart.sierra 提出
目前,clojure.java.classpath既不处理JAR清单文件,也不处理嵌套的JAR文件。正如我在之前评论中描述的,实现对此的支持将会很困难,而且在我短期内不太可能成为优先事项。我愿意审查添加此功能的补丁,但是它必须证明它可以防止递归循环。
根据我对(链接:http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html 文本:JAR文件规范)的阅读,clojure-maven-plugin的行为可以被视为违反了JAR规范的意图,该规范这样描述“Class-Path”清单属性:
{quote}
"Class-Path: 此属性的值指定了应用程序或扩展需要的扩展或库的相对URL。" (加粗为原文所加)
{quote}
clojure-maven-plugin正在创建一个包含指向其他JAR文件(这些JAR文件不包含在包含该清单的JAR中)的绝对URL的"Class-Path"属性的JAR清单。
我总是假设带有Class-Path属性的JAR清单文件仅在打包完整应用程序或JDK扩展时使用,而不是作为开发中指定类路径的机制。很明显,这是可能的,例如当前的clojure-maven-plugin所展示的,但这不是我想依赖的功能。
通常情况下,JDK不支持列举类路径上的所有文件,因为类路径可以包含指向远程资源的URL,这些资源将在需要时下载。