用maven工具解决jar包冲突问题或重复加载问题
2018-01-26 13:41
537 查看
在使用maven开发项目的过程中,经常会遇到jar包重复加载或者jar包冲突的问题的,但是由于有些jar是由于maven的依赖加载自动加载进来的,
而不是开发者自己配置的,特别是当项目中pom中配置的jar包依赖本身很多时,开发者靠自己的经验,有时很难找出是哪个jar的加载导致加载了
多余的依赖jar,从而产生冲突。
今天刚好遇到一个借用eclipse中的maven插件解决jar包依赖冲突的问题,分享一下。
项目中出现的问题如下:
后经网上搜索加边上大牛指点发现:
log4j-over-slf4j.jar 和 slf4j-log4j12.jar 在同一个classpath下就会出现这个错误。
解决方法:
将slf4j-log4j12.jar从相关的jar中排除
但是查看maven项目中的pom文件,自己并没有配置这个jar的依赖,猜测是maven加载其他jar引入的依赖包。
打开pom.xml文件,在Dependency Hierarchy(依赖列表)中查看jar包的依赖层次关系。
在过滤栏中输入log4j,右侧出现了log4j相关包的依赖结构,左侧则是pom.xml全部依赖包的列表展示。
直接在右侧选中zookeeper底下的slf4j的jar包,右键选择Exclude,然后保存pom.xml。这样在加载zookeeper的jar包时就不会再加载slf4j的jar包。
修改后对应的dependency文件如下:
这样就能通过filter过滤快速找到对应jar,并知道他的依赖关系,快速解决项目中的jar包冲突问题。
而不是开发者自己配置的,特别是当项目中pom中配置的jar包依赖本身很多时,开发者靠自己的经验,有时很难找出是哪个jar的加载导致加载了
多余的依赖jar,从而产生冲突。
今天刚好遇到一个借用eclipse中的maven插件解决jar包依赖冲突的问题,分享一下。
项目中出现的问题如下:
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.Log4jLoggerFactory
后经网上搜索加边上大牛指点发现:
log4j-over-slf4j.jar 和 slf4j-log4j12.jar 在同一个classpath下就会出现这个错误。
解决方法:
将slf4j-log4j12.jar从相关的jar中排除
但是查看maven项目中的pom文件,自己并没有配置这个jar的依赖,猜测是maven加载其他jar引入的依赖包。
打开pom.xml文件,在Dependency Hierarchy(依赖列表)中查看jar包的依赖层次关系。
在过滤栏中输入log4j,右侧出现了log4j相关包的依赖结构,左侧则是pom.xml全部依赖包的列表展示。
直接在右侧选中zookeeper底下的slf4j的jar包,右键选择Exclude,然后保存pom.xml。这样在加载zookeeper的jar包时就不会再加载slf4j的jar包。
修改后对应的dependency文件如下:
<dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> <exclusions> <exclusion> <artifactId>slf4j-log4j12</artifactId> <groupId>org.slf4j</groupId> </exclusion> </exclusions> </dependency>
这样就能通过filter过滤快速找到对应jar,并知道他的依赖关系,快速解决项目中的jar包冲突问题。
相关文章推荐
- 利用maven工具解决jar包冲突问题或重复加载问题
- 利用maven工具解决jar包冲突问题或重复加载问题
- Maven中jar版本冲突问题的解决
- 通过maven-shade-plugin 解决Elasticsearch与hbase的jar包冲突问题
- Maven查找依赖树,解决jar包冲突问题
- maven项目由于多个依赖中含有同一个jar包导致的冲突问题的解决办法
- 怎么spring security 和maven,spring,结合jar包冲突和依赖关系问题解决办法。
- 怎么解决maven管理jar包冲突问题
- 通过maven-shade-plugin 解决Elasticsearch与spark的jar包冲突问题
- maven解决jar冲突问题
- 正确配置jstl的maven依赖,jar包冲突的问题终于解决啦
- 怎么解决maven管理jar包冲突问题
- IDEA解决Maven创建新项目不加载jar包问题
- Maven打包方式,以及jar包冲突问题的解决方法
- maven jar包冲突导致java mail报空指针异常问题的解决过程
- maven 工具的依赖树以及解决版本包冲突问题
- 通过maven-shade-plugin 解决Elasticsearch与spark的jar包冲突问题
- AS下解决Gradle dependencies compile jar包冲突、重复问题
- 采用类加载器解决jar hell(jar冲突)有关问题
- 解决maven生成的web项目下的servlet.jar与tomcat自带servlet.jar冲突的问题