maven helper 解决jar包冲突方法

一 概要说明

1.1 说明

首先,解决idea中jar包冲突,使用maven的插件:maven helper插件,它能够给我们罗列出来同一个jar包的不同版本,以及他们的来源,但是对不同jar包中同名的类没有办法。

1.2  依赖顺序

从图中可以看出有哪些jar存在冲突,存在冲突的情况下最终采用了哪个依赖的版本。标红的就是冲突版本,白色的是当前的解析版本。

maven helper 解决jar包冲突方法_第1张图片

1.3 解决思路

方案1:在依赖中排除掉冲突版本的依赖。使用 exclusion 排除定位到的冲突包。

maven helper 解决jar包冲突方法_第2张图片

方案2: 显示单独声明使用依赖的版本

maven helper 解决jar包冲突方法_第3张图片

方案3: 方案1+方案2  ,先排除,后声明制定的版本。

maven helper 解决jar包冲突方法_第4张图片

方案4:锁定版本,我们最常使用的解决方式,是使用dependencyManagement统一对依赖的版本进行定义。这样的话,导入依赖的时候就会直接使用我们锁定的依赖版本。

maven helper 解决jar包冲突方法_第5张图片

这里要注意两点,版本锁定和使用路径优先原则不同,使用路径优先原则,是实实在在地将jar包给引入到pom文件中,而版本锁定只是规定了要使用的版本号,只有真实用到了相关的依赖,才生效。同时,版本锁定可以更集中地约束和规定依赖版本,这种优势是其他方法所不能达到的。
当然了,如果只是简单的小型项目,使用其他方式可能是更好的解决方法。

https://www.cnblogs.com/moutory/p/17752823.html

二 案例说明1

2.1 解析说明

1.冲突概貌

    
      org.springframework
      spring-webmvc
      6.0.9
    
    
      org.springframework
      spring-aop
      5.3.23
    

maven helper 解决jar包冲突方法_第6张图片

2.说明

1.spring-webmvc-6.0.9 依赖于spring-aop-5.2.8

2.spring-webmvc-6.0.9 依赖于spring-context-5.2.8,springcontext-5.2.8 依赖于spring-aop-5.3.23

冲突出现:spring-aop-5.2.8与spring-aop-5.3.23

maven helper 解决jar包冲突方法_第7张图片

冲突出现:spring-aop-5.2.8与spring-aop-5.3.23 

maven helper 解决jar包冲突方法_第8张图片

 2.2 解决办法

1.spring-webmvc-6.0.9 排除掉:spring-aop-5.2.8


  org.springframework
  spring-webmvc
  6.0.9
  
    
      spring-aop
      org.springframework
    
  

2.starter-web排除掉  spirngwebmvc-5.2.8,然后声明6.0.9版本。

maven helper 解决jar包冲突方法_第9张图片

3.刷新pom,重新拉包,如图

maven helper 解决jar包冲突方法_第10张图片

三  案例说明2

3.1 冲突截图

maven helper 解决jar包冲突方法_第11张图片

3.2 截图办法

在父工程中的pom文件中声明冲突依赖的具体版本。如图,这里指定

dpsn-appas-oltp-plugin-api的版本为1.0.0

maven helper 解决jar包冲突方法_第12张图片

四  案例说明3  锁定版本

4.1 冲突截图

锁定版本,我们最常使用的解决方式,是使用dependencyManagement统一对依赖的版本进行定义。这样的话,导入依赖的时候就会直接使用我们锁定的依赖版本。

这里在父工程的pom里面中的标签中,指定使用版本


  com.pab.dpscn
  corebankpulltest-message
  1.0.0-dev-test-SNAPSHOT

详情见下图

你可能感兴趣的:(maven,maven,jar,intellij-idea)