我的小程序依赖于两个 JAR 库。每个 JAR 库都依赖于 xercesImpl-2.2.1.jar。不幸的是,他们希望它有不同的名称:
Apache FOP 0.20.5
- META-INF/MANIFEST.MF 中的条目:类路径:xercesImpl-2.2.1.jar...
Apache Xalan 2.4.1
- META-INF/MANIFEST.MF 中的条目:类路径:xercesImpl.jar...
xercesImpl-2.2.1.jar 在标记中指定。我可以在Java控制台中看到它已成功下载。但是稍后控制台显示尝试读取不存在的 xercesImpl.jar。它必须从 Xalan list 中获取此信息,因为 Web 应用程序代码未在任何地方指定 xercesImpl.jar。显然它实际上已经有了这个 JAR 的内容,因此实际上不需要加载它。
我正在使用 Maven 来管理依赖项,并希望继续使用这两个标准的公共(public)开源库,而不需要破坏它们的 list 。关于解决此问题的最佳方法有什么建议吗?或者我应该忍受 Java 控制台中的虚假错误吗?
最佳答案
我不是 Maven 专家,但您可能最好不要理会依赖项,并以某种方式为您的项目提供一个“目标”,其中涉及一旦 JAR 文件之一“进入”您的项目,就对其进行重新打包。
可能的一种方法是使“重新打包的 JAR”工件依赖于“fop”工件,并且您的项目依赖于“重新打包的 JAR”工件。类似这样的事情。
关于java - Applet 依赖 JAR 在 MANIFEST.MF 中具有不兼容的类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4647531/