首页 > Java > java教程 > 如何避免 Java/Maven 中的'Xerces Hell”?

如何避免 Java/Maven 中的'Xerces Hell”?

Patricia Arquette
发布: 2024-11-20 04:23:01
原创
326 人浏览过

How to Avoid

处理 Java/Maven 中的“Xerces Hell”?

背景

Xerces 是 Java 生态系统中广泛使用的 XML 解析器,具有重要意义由于历史因素和包装问题带来的挑战。官方的 Xerces 二进制文件缺乏版本控制,并且该项目未正式上传到 Maven Central。此外,将 Xerces 拆分为多个 jar(xml-api、xercesImpl)以及不同各方的不同版本控制实践使问题变得更加复杂。在 Maven 环境中使用 Xerces 时,这会导致冲突和类加载器问题。

问题

冲突解决

Maven 无法解决同一工件的不同版本之间的冲突,即使在由不同组织发布,会导致包含多个 Xerces 依赖项的情况,从而可能导致类路径冲突。

类加载器地狱

将 Xerces 包含在 JAXP 参考实现和 servlet 容器中,再加上 Maven 依赖项中可能存在冲突的版本,创建了一个复杂的类加载场景,需要仔细管理以避免运行时的类加载器冲突。

解决方案

由于存在多个别名和依赖关系,尝试排除或标记所提供的 Xerces 依赖关系可能具有挑战性第三方库和框架。然而,一个重大的进展已经出现:

最近更新

2013 年 2 月,上传了 Xerces 构建脚本的修补版本以修复 Maven Central 上传问题。 Xerces 2.11.0 JAR 现已在 Maven Central 中提供,解决了长期存在的版本控制和打包问题。

此开发显着简化了 Maven 项目中的 Xerces 依赖项管理。开发人员现在可以使用以下依赖项声明来正确解析 Xerces:

<dependency>
    <groupId>xerces</groupId>
    <artifactId>xercesImpl</artifactId>
    <version>2.11.0</version>
</dependency>
登录后复制

此解决方案消除了对细粒度依赖项控制和复杂的分层类加载机制的需要。

以上是如何避免 Java/Maven 中的'Xerces Hell”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板