首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >maven依赖冲突

maven依赖冲突
EN

Stack Overflow用户
提问于 2010-07-07 05:02:17
回答 1查看 1.2K关注 0票数 2

在我的项目中,有两个库,每个库都依赖于XML解析类java.xml.parsers.DocumentBuilderFactory。这些库中的每一个都引用来自不同jar的文件(一个从名为xmlParserAPIs的jar中获取该文件,另一个从xml-apis-1.0.b2.jar中获取该文件)。不幸的是,在每个文件中都有不同版本的类,所以我看到了运行时错误,这取决于它们的加载顺序。这两个xml jars都是第三方库的传递依赖项。有没有处理这种冲突的好方法?

编辑:我不确定这对如何处理问题是否有影响,但这只会在测试中发生,因为其中一个依赖项在测试范围内。

谢谢,杰夫

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-07 05:23:40

(...)不幸的是,在每个文件中都有不同版本的类,所以我看到了运行时错误,这取决于它们的加载顺序。

从理论上讲,xml-apis.jarxmlParserAPIs.jar (来自xerces2-j)是相同的JAR,但名称不同,xmlParserAPIs.jar多年来一直被弃用(参见this messagethis one)。

如果您的依赖项依赖于不同且不兼容的xml-apis.jar版本,我会说这些依赖项是相互排斥的,换句话说,至少对于您正在使用的版本是不兼容的。唯一的解决方案是找到具有收敛依赖的版本。

如果它们可以使用兼容的版本,请使用xmlParserAPIs.jar的依赖项exclusion,以便仅使用xml-api.jar

我不确定这对如何处理问题是否有影响,但这只会在测试中发生,因为其中一个依赖项在测试范围内。

不,这只是解释了为什么你在运行时没有得到这个问题(因为test作用域不在类路径上,很明显,没有冲突)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3190216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档