Maven 隐式依赖包冲突导致程序报错
来源:互联网 发布:电商销售数据分析报告 编辑:程序博客网 时间:2024/05/16 14:04
Maven 隐式依赖包冲突导致程序报错
问题描述
将一个独立的功能程序从原 Maven 工程中抽取出来,并创建为 web 工程,同样使用 Maven 依赖。
依赖包、Java Build Path 配置好后,处理 xml 节点的程序报错,提示“The method getTextContent() is undefined for the type Node”:
注:两个工程引用的包都是 org.w3c.dom.Node。
原因
查看 Node 反编译类得知新建的web工程中引用的是 xml-apis-1.0.b2.jar 包里面的 org.w3c.dom.Node 类,该包没有定义 textContent 的 setter 和 getter;
而原工程引用的是 JRE lib 中的 rt.jar 包里面的 org.w3c.dom.Node 类。
可知新建的web工程中这两个 org.w3c.dom.Node 类冲突了。
问题解决
首先想着改 pop.xml, 去掉 xml-apis-1.0.b2.jar 依赖,但 pop.xml 文件里面没有显式地依赖 xml-apis-1.0.b2.jar,那应该是被间接隐式引入的。
查找隐式依赖包可以通过 maven 依赖包树结构来分析。
在命令窗口切换到包所在路径,然后执行 mvn dependency:tree 命令:
E:\**\**>mvn dependency:tree
或者直接通过开发工具如 eclipse 的 依赖层级树结构:
可以看出是 dom4j 依赖包隐式载入了,现通过 Maven 排除隐式包依赖:
<dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> <exclusions> <exclusion> <groupId>xml-apis</groupId> <artifactId>xml-apis</artifactId> </exclusion> </exclusions> </dependency>
这样,被间接隐式引入的依赖包就不会被引入了。
参考:
[1] Maven解决类包依赖冲突
阅读全文
0 0
- Maven 隐式依赖包冲突导致程序报错
- Maven的Pom文件中的隐式依赖导致Jar包冲突的问题
- Maven的隐式依赖导致Jar包冲突的问题
- Maven Pom 文件中的隐式依赖导致Jar冲突
- Maven Pom 文件中的隐式依赖导致Jar冲突
- Maven Pom 文件中的隐式依赖导致Jar冲突
- spring3的一个报错,原因是maven依赖包冲突,有重复的依赖。
- maven包依赖冲突
- maven隐式依赖引起的包冲突
- 由maven依赖的jar包有误导致tomcat运行报错的一种解决思路
- maven依赖包冲突问题
- maven引入jar包依赖报错
- java web的jar包冲突导致NoSuchMethodError报错
- Maven解决类包依赖冲突
- Maven解决类包依赖冲突
- maven依赖包版本冲突小尝试
- maven web项目,解决包依赖冲突
- 【转】MAVEN 解决包依赖冲突方案
- 正则表达式
- 每日一诗词 —— 定风波·莫听穿林打叶声
- poj_2524_题解
- 基于微软案例数据挖掘之Microsoft 神经网络分析算法
- Git撤销修改场景及对应指令详解
- Maven 隐式依赖包冲突导致程序报错
- Asp.net+Vue2构建简单记账WebApp之一(设计)
- 不同文件中类外定义demo
- Codeforces 570D Tree Requests
- HTTP协议简介
- 大数据预科班作业5~6
- redis学习(1)简介,安装及配置
- 基于微软案例数据挖掘之Microsoft 线性回归分析算法
- S2-052 CVE-2017-9805 python脚本