美文网首页程序员
Maven 依赖jar包版本冲突解决

Maven 依赖jar包版本冲突解决

作者: 环球探测 | 来源:发表于2016-06-21 21:48 被阅读13400次

Java的强大之处就是在于它的生态环境,有众多的轮子支持复杂项目的开发。现在基本上每个稍微有点规模的Java项目都会依赖到众多的jar包,而Maven应该是目前管理jar包依赖最流行的工具。然而,过多复杂的jar包依赖就可能造成版本冲突问题。比如:

项目依赖A和B;A依赖C1.0,B依赖C2.0,如果C的两个版本不兼容,我们的项目就会出现问题。

像例子中这样的C在还是很多的,最常见的就属apache的一堆工具包,比如commons-logging;

冲突解决方法:
1 分析冲突的jar包的依赖路径

mvn dependency:tree -Dverbose -Dincludes=commons-logging:commons-loggging

这条命令可以打印出所有依赖了groupId和artifactId都为commons-logging的jar包的依赖路径。

2 选择一个所需的版本
在两个冲突的版本中,我们在自己的项目中用到了哪个版本的语法,就选择哪个。

3 在本项目的pom中将冲突的依赖排除:
具体写法:
比如我们要将一个依赖中的相应的jar包排除:
Java
<dependency>
<groupId>com.xxx.xx</groupId>
<artifactId>xxx</artifactId>
<version>x</version>
<exclusions>
<exclusion>
<artifactId>com.springsource.slf4j.org.apache.commons.logging</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>

最后推荐一下intellij,在intellij中打开你的pom.xml,右键单击内容,选择diagram->show dependencies, 会自动执行mvn:dependency 并绘制一个依赖树,列出所有的依赖包如下图所示。想要排除哪个,可以直接右键选择"exclude".不过目前我还没发现怎样像命令行一样过滤树的结果,所有如果依赖太多,还是先执行一下命令找出哪里的依赖冲突了比较好。

![dependency.jpg](https://img.haomeiwen.com/i1713176/1b64d1abc8bd6ebd.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

相关文章

  • Maven中依赖冲突解决方案

    在使用Maven中我们导入jar包坐标时会产生依赖传递,而依赖传递难免会发生jar包间的依赖冲突,解决jar包冲突...

  • Maven解决依赖冲突

    maven依赖冲突以及解决方法 什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类...

  • swagger的使用

    一开始运行swagger时依赖包冲突,需要手动引入guava.jar的20.0版本 Maven依赖冲突的两种解决方...

  • Maven 依赖jar包版本冲突解决

    Java的强大之处就是在于它的生态环境,有众多的轮子支持复杂项目的开发。现在基本上每个稍微有点规模的Java项目都...

  • guava版本冲突解决办法--maven项目

    maven项目解决jar包冲突的四种方式 guava版本冲突解决办法 ------场景:grpc-all 和 es...

  • maven解决jar包依赖冲突

    maven很好滴帮我们管理了项目所依赖的jar包,但是有些jar包间接滴依赖了我们在pom中已经配置过的第三方ja...

  • 解决Maven jar包版本冲突

    在pom里添加 运行命令mvn dependency:tree -Dverbose -D= 输出...

  • maven jar包冲突原理与解决办法

    jar 包冲突原因 大概就是jar包冲突(今天遇到的是第一种) 依赖传递 因为Maven拥有传递依赖的特性,因此真...

  • Maven 依赖管理

    管理包依赖是 Maven 核心功能之一,下面通过如何引入 jar 包;如何解析 jar 包依赖;包冲突是如何产生;...

  • maven依赖冲突以及解决方法

    什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类包版本冲突 依赖冲突的原因 依赖...

网友评论

    本文标题:Maven 依赖jar包版本冲突解决

    本文链接:https://www.haomeiwen.com/subject/hcvgdttx.html