maven 依赖

在maven项目中,一些基础的jar包被引用多次是很常见的事情。maven选择jar的版本是基于
- 依赖深度浅的 比如C项目依赖xml.jar。C依赖的B也引入了xml.jar。那么优先选择C中指定的
- 如果依赖深度一样,第一次依赖的jar被选中

实际项目开发,一般是exclude掉B项目中的xml.jar,在C项目中显示指定xml.jar的版本。

<dependency><groupId>b</groupId><artifactId>test</artifactId><version>1.0</version><exclusions><exclusion><groupId>xml</group><artifactId>xml</artifactId></exclusion></exclusions>
</dependency>
<dependency><groupId>xml</group><artifactId>xml</artifactId><version> 2.2</version>
</dependency>

问题

按照上面的原则对xml-apis.1.0.b进行升级到xml-apis.1.4。但是始终exclude不出去xml-apis1.0.b
mvn dependency:tree

看到xml-apis.1.0.的来源已经不是依赖的项目中引入的,而是在根路径下。

这个颠覆了对maven的认知。

看了下xml-apis这个,就知道版本有多混乱了,2.0.2的比1.4的还要先发布。

解决

直接引入了xerces xercesImpl 2.10.0.这个jar包中有xml-apis1.4.01版本

<dependency><groupId>xerces</groupId><artifactId>xercesImpl</artifactId><version>2.10.0</version>
</dependency>

参考

http://javamoods.blogspot.com/2009/06/maven-how-relocated-artifacts-can-ruin.html
https://stackoverflow.com/questions/11677572/dealing-with-xerces-hell-in-java-maven?answertab=votes
https://gxnotes.com/article/29548.html

Warning maven relocated xml-apis to 1.0.b相关推荐

  1. Maven项目SSM整合中mysql8.0.11对应Druid版本问题以及pom.xml写法

    场景 本地:mysql 8.0 Maven项目:mysql驱动 8.0.11 Maven项目:Druid1.1.10 此前Druid为版本1.0.20,项目会报 java.sql.SQLExcepti ...

  2. nexus-3.6.0-02-unix.tar.gz安装(Centos下),maven setting.xml配置案例,项目root的pom.xml配置,parent-pom的pom.xml配置案例

    1.下载nexus 进入:http://www.sonatype.org/nexus/downloads/ 说明: [OSS = Open Source Software,开源软件 – 免费] [FR ...

  3. Maven pom.xml 全配置(二)不常用配置

    Maven pom.xml 全配置(二)不常用配置 这里贴出Maven pom.xml文件中使用率较少的配置参数,如果此篇文档中没有找到你想要的参数,移步Maven pom.xml 全配置(一)常用配 ...

  4. Maven pom.xml 全配置(一)常用配置

    Maven pom.xml 全配置(一)常用配置 这里贴出一个Maven中出现频率较高的配置参数注释,方便理解项目中Maven的配置具体的作用.如果在此博文中没有找到你想看到的参数,可以移步Maven ...

  5. 学习笔记——Maven pom.xml配置详解

    POM的全称是"ProjectObjectModel(项目对象模型)". pom.xml详解 声明规范 <projectxmlns="http://maven.ap ...

  6. Maven pom.xml配置详解(三)

    2019独角兽企业重金招聘Python工程师标准>>> 环境设置 issueManagement <!--项目的问题管理系统(Bugzilla,Jira,Scarab,或任何你 ...

  7. 你真的了解Maven pom.xml 的配置吗?【详解maven pom】

    Maven POM POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖 ...

  8. 在maven pom.xml中加载不同的properties ,如localhost 和 dev master等jdbc.properties 中的链接不一样...

    [参考]:maven pom.xml加载不同properties配置[转] 首先 看看效果: 点开我们项目中的Maven projects 后,会发现右侧 我们profile有个可勾选选项.默认勾选l ...

  9. Maven setting.xml 配置详解

    声明规范 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://ww ...

最新文章

  1. CentOs7安装gitlab(转!)
  2. mysql创建表时显示错误_MYSQL创建表出现错误 ERROR Code 1118如何解决
  3. python控制结构(二)_Python学习手册之控制结构(二)
  4. MySQL子查询嵌套查询
  5. JVM内存管理机制和垃圾回收机制
  6. jpa中::::_项目学生:JPA标准查询
  7. Batis-iBatis基本操作(增删改查)
  8. 步骤mysql_mysql 安装 等步骤(一)
  9. iOS 播放Gif动画
  10. Jzoj3882 近邻
  11. 三极管实现与门、或门和非门操作
  12. ARM汇编:数据处理指令集:MOV、ADD、ADDS、ADC、SUB、SUBS、SBC、RSB、MUL、AND、ORR、EOR、BIC、CMP、TST、TEQ、LSL、LSR、ASR、RORV
  13. axure 设置背景虚化_Axure如何做背景虚化?
  14. 疫情下的远程办公,充满了崩溃与机遇
  15. mysql 大写 小写_MySQL大写和小写问题
  16. Flink_企业级风控平台架构建设_01
  17. html 表情符号选择,实用输入域表情符号选择器jQuery插件
  18. 周易六十四卦——需卦
  19. 改编的一个滑动门代码
  20. 如何用C语言来实现【三子棋游戏】

热门文章

  1. 猴年猴赛雷,曙光服务器全面升级E5-v4平台
  2. Flutter高仿微信-第26篇-新的朋友
  3. 东方博宜OJ 1863 - 【入门】特殊的数字四十
  4. 【写作中的复杂名词短语练习题】前置与后置修饰
  5. EKL构造点和线的基本用法
  6. python键盘控制_Python 键盘/鼠标控制
  7. 两条边延长角会有什么变化_《直线、射线、线段和角》教学设计
  8. 工信部等三部委:推进区块链等新一代信息技术在养老场景集成应用
  9. 玩转华为ENSP模拟器系列 | 配置OSPFv3 ABR路由聚合示例
  10. 上海域格CLM920 JC3(JC5)模组安卓系统下会显示以太网图标的处理