由:stuart.sierra发表的评论
目前,clojure.java.classpath 既不处理 JAR Manifest 文件,也不处理嵌套 JAR 文件。正如我在之前的评论中所述,实现对此的支持将是困难的,并且在不久的将来不太可能成为我的优先事项。我愿意审阅添加此功能的补丁,但必须证明它能够防止递归循环。
根据我对 (链接:[JAR 文件规范](http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html)) 的理解,clojure-maven-plugin 的行为可以视为违反 JAR 规范的精神,该规范将 "Class-Path" manifest 属性描述如下:
{quote}
"Class-Path: 此属性的值指定了应用程序或扩展所需的库或扩展的 相对 URLs。"(强调已添加)
{quote}
clojure-maven-plugin 正在创建一个包含包含URL的 "Class-Path" 属性的 JAR 表明文件,这些URL是 **绝对** 的,并且 **不是** 存在于包含表明的JAR文件中的JAR文件。
我总是认为带有 Class-Path 属性的 JAR 清单文件仅在打包完整应用程序或 JDK 扩展时使用,而不是作为在开发中指定类路径的机制。显然这是可能的,如当前 clojure-maven-plugin 所演示的,但这不是我希望依赖的功能。
一般情况下,JDK 不支持列举类路径上的所有文件,因为类路径可以包含指向远程资源的 URL,这些资源在需要时才会下载。