Maven依赖冲突

2024-04-26

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

编辑:我不确定它是否会对如何处理问题产生影响,但这仅发生在测试中,因为依赖项之一位于测试范围内。

谢谢, 杰夫


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

理论上,xml-apis.jar and xmlParserAPIs.jar(来自 xerces2-j)是相同的 JAR但名字不同,xmlParserAPIs.jar已被弃用多年(参见这条信息 http://markmail.org/thread/hj6kdvgsvxtqmhtp and this one http://markmail.org/message/pcolq7lt2wekkbmu).

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

如果他们可以使用兼容版本,请使用依赖项排除 http://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html for xmlParserAPIs.jar to use xml-api.jar only.

我不确定它是否会对如何处理问题产生影响,但这仅发生在测试中,因为依赖项之一位于测试范围内。

不,这只是解释了为什么你在运行时没有遇到问题(因为test那么scoped不在类路径上,显然,不冲突)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Maven依赖冲突 的相关文章

  • maven测试报告格式

    当我在我的 Java Groovy Maven 项目中运行测试时 测试报告存储在target surefire reports 对于运行的每个测试类 txt and xml创建文件显示该类的输出 总而言之 这是一种非常无用的格式 因为它没有
  • Maven 与 Android - R.java 文件生成 (Eclipse)

    我正在尝试将 R java 生成工作到 gen 文件夹中的项目 实际上 应用程序在使用 maven 构建时构建 但是 eclipse 发现错误 因为它无法解析 R java 文件 实际上在每次构建后放入 target generated s
  • Maven 的新功能:使用阴影插件和第 3 方 jar

    这应该很简单 但我无法解决它 我需要使用第 3 方 jar 创建一个 uberjar 我已经按照这些说明进行操作 包含非 Mavenized 依赖项 以便与 maven shade plugin 一起使用 https stackoverfl
  • 如何排除 Maven 继承的子依赖项中的父 pom 依赖项?

    我在父 pom 中有一个版本为 2 3 的 Jackson 在我的子 pom 中我需要版本 2 9 有什么方法可以排除父 pom 依赖项吗 您可以使用 dependencyManagement 部分覆盖依赖项的版本
  • 从 Maven 中发出 HTTP POST 请求(使用输入类型=“文件”),如果可能,使用命令行参数

    我想转换这个 bash 脚本 bin bash if 2 then echo Usage update module admin password module file exit 1 fi if f 2 then echo Error m
  • Maven war 插件无法排除分解的 war 格式的库

    我正在使用 Maven War 插件排除一些常见的 jar 并将它们放入类路径中 我能够正确生成排除指定库的 war 文件并将它们添加到类路径中 但分解 的 war 目录仍然包含排除的库 如何使用 Maven War 插件的配置生成分解的
  • 用Maven项目的源代码生成具有Maven目录结构的jar?

    我有一个使用 Maven 构建的 Web 应用程序 但我想用maven项目生成一个具有正确maven目录结构的JAR 我试过this http www sonatype com people 2010 01 how to create tw
  • 替代品?

    您建议用什么来替代 Maven Java 构建工具集 只是简单的 Ant 脚本吗 SCons 无论如何 这取决于你使用什么 马文1 马文2 我发现 Maven 2 有很好的文档记录 并且在与 Ant 任务和一些自制的 Java 插件结合使用
  • 如何从maven SNAPSHOT存储库下载SNAPSHOT版本?

    所以我有一个项目 我定期发布到 Maven 没有问题 我现在想要提供该项目的快照版本 所以我做了 mvn clean 部署 一切正常 如下所示 INFO 从 sonatype nexus snapshots 检索以前的内部版本号 上传中 h
  • Jetty 通过 Maven 正确运行,但作为 jar 运行不正确

    如果我的标题具有误导性 不正确 请提出更具描述性的内容 这是我能想到的最好的内容 我已经使用 spring roo 创建了自己的网络应用程序 但尚未编辑任何代码 我正在使用 Maven 和 jetty 构建并运行 Web 应用程序 当我执行
  • Maven 2 可以在同一项目中使用两个不同版本的构建插件吗?

    我的项目需要新版本的 Maven 构建插件的功能some的目标 但新版本在其他目标之一上失败了 由于插件中的错误 作为修复错误之前的解决方法 我想使用旧版本的插件运行损坏的目标 Edit 更具体地说 我需要使用 gwt maven plug
  • 如何处理Junits中Maven和Intellij之间的相对路径

    我有一个带有模块的 Maven 项目 myProject pom xml myModule pom xml foo bar txt 考虑一个 JunitmyModule需要打开哪个bar txt 对于 maven basedir 是模块目录
  • 冬眠混乱。 GA、GA 和最终版本之间有什么区别?兼容性?存储库?

    谁能解释一下 1 ga GA 和 Hibernate 最终版本之间的区别 2 我应该使用maven存储库还是jboss nexus存储库 3 为什么最新的兼容性矩阵 http community jboss org wiki Hiberna
  • 如何在项目中生成jar和war

    我们有两个不同的项目 并且两个项目中的控制器几乎相同 项目 A 内部有控制器 所以为其引发战争不是问题 但是项目 B 需要项目 A 控制器的控制器 jar 谁能告诉我如何从项目 A 的控制器生成可以在项目 B 中使用的 jar 文件 这种情
  • 在哪里可以找到用于 EJB 测试的完整 Maven Cargo 插件示例?

    对于一些小型 JBoss 企业应用程序的测试 我想使用 JUnit 并且Maven 货物插件 http cargo codehaus org Maven2 plugin 我知道还有 JSFUnit 但首先我想仔细看看 Cargo 网上是否有
  • 查找多模块 Maven Reactor 项目的根目录

    有没有一种简单的方法可以找到多模块 Maven 项目的根 例如 Gradle 的rootDir 背景 我想使用 maven dependency plugin 将多模块项目的所有子模块中的工件复制到相对于整个项目的根目录的目录 也就是说 我
  • Maven编译失败(但Eclipse下编译成功)

    在构建我的网络项目时Eclipse 一切安好 没有错误 没有警告 然而 在构建项目时Maven it failes 下面是输出形式mvn compile c Users jwa Desktop tets traffic web gt mvn
  • Spring 3、Jersey (JSR-311) 和 Maven 依赖项

    我目前正在努力集成基于 Jersey 和 Spring 的 REST 服务 我正在使用 Spring 3 0 2 RELEASE 和 jersey spring 1 2 但是 jersey spring 在我的项目中添加了对 Spring
  • JPA 2.0 API Maven 工件

    我正在使用 JPA 2 0 我的持久性提供程序是 Hibernate 但是 我只想包含 javax 中的标准 API 但在中心 没有 2 0 工件 我目前正在使用 Hibernate JPA 2 0 工件 但我想使用更标准的东西 这可能吗
  • 如何将 SVN 修订号注入 JAR 中?

    我希望我的 JAR WAR 应用程序知道其源代码的 SVN 修订号是多少 我希望稍后在网页底部等处为网络最终用户呈现此修订号 是否有任何现有的 Maven 插件可以自动化该过程 我认为该插件必须从以下位置收集信息svn并保存到某个文件 例如

随机推荐