评论者: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 文件的 绝对 URL 的 JAR 清单,这些 JAR 文件 并未 嵌入包含清单的 JAR 中。
我一直认为,带有 Class-Path 属性的 JAR 清单文件仅在打包完整应用程序或 JDK 扩展时使用,而不是在开发过程中指定类路径的一种机制。显然,这是可能的,正如当前的 clojure-maven-plugin 所演示的那样,但这不是我希望依赖的功能。
通常,JDK 不支持遍历类路径上的所有文件,因为类路径可以包含指向远程资源的 URL,这些资源按需下载。