idea 中解决maven 包冲突的问题(maven helper)

此时需要安装IDEA下的一款插件:Maven Helper

在线安装

打开file-setting-plugins,然后在插件商店搜索Maven Helper

idea 中解决maven 包冲突的问题(maven helper)_第1张图片

我用的是idea2019,跟2018;略有不同,2018应该是下面这个样子的

idea 中解决maven 包冲突的问题(maven helper)_第2张图片

idea 中解决maven 包冲突的问题(maven helper)_第3张图片

、本地安装:

下载地址    http://plugins.jetbrains.com/plugin/7179-maven-helper/versions
MavenRunHelper.zip不需要解压

选择下载好的zip包:

idea 中解决maven 包冲突的问题(maven helper)_第4张图片

一.冲突问题

比如项目中引用了两个 fastjson.jar的版本,分别为

fastjson:1.2.28
fastjson:1.2.3

我们用到了1.2.28中的某个类, 比如 A类,在版本更新中 1.2.3版本去掉了这个类,然而我们项目中maven 却把1.2.3的 jar 打包进去了,那我们就会报异常,不存在这个 class,但是我们调错误的时候却发现这个类存在,那我们怎么找到问题根源呢,到底是哪个包的需要Exclude 呢?

idea 中查看 maven 依赖只会给你一个复杂到极点图,基本没有啥价值,所以要安装个插件 maven helper

二.解决问题

(1)首先安装插件 maven helper(因为我已经安装了,所以没 install 的按钮了)

idea 中解决maven 包冲突的问题(maven helper)_第5张图片

(2)安装完成后,在 pom 文件下方会出现这个东西

idea 中解决maven 包冲突的问题(maven helper)_第6张图片

(3)点进去你会发现仿佛回到了 eclipse

idea 中解决maven 包冲突的问题(maven helper)_第7张图片

(4)接下来到重点了,选中冲突选项 conflicts,这一列都是存在冲突的包

idea 中解决maven 包冲突的问题(maven helper)_第8张图片

(5)以fastjson 为例

idea 中解决maven 包冲突的问题(maven helper)_第9张图片

(6)当然我们调错误的时候也可以直接搜索有问题的包,如下

idea 中解决maven 包冲突的问题(maven helper)_第10张图片

(7)选中右键就可以 Exclude 啦,想用1.2.28就把其他版本的Exclude掉,想用1.2.3就把其他版本的Exclude掉,是不是很方便。

idea 中解决maven 包冲突的问题(maven helper)_第11张图片

三.锁定jar版本

面对众多的依赖,有一种方法不用考虑依赖路径、声明优化等因素可以采用直接锁定版本的方法确定依赖构件的版本,版本锁定后则不考虑依赖的声明顺序或依赖的路径,以锁定的版本的为准添加到工程中,此方法在企业开发中常用。

如下的配置是锁定了spring-beans和spring-context的版本

 

     
     
          
              
              
                  org.springframework
                  spring-beans
                  4.2.4.RELEASE
              

            
                  org.springframework
                  spring-context
                  4.2.4.RELEASE
              

          

     

 

注意:在工程中锁定依赖的版本并不代表在工程中添加了依赖,如果工程需要添加锁定版本的依赖则需要单独添加标签,如下:

   
              
              
                  org.springframework
                  spring-beans
             

            
                  org.springframework
                  spring-context
             

          

 

上边添加的依赖并没有指定版本,原因是已在中锁定了版本,所以在下不需要再指定版本。
————————————————
版权声明:本文为CSDN博主「恰时」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fnwibwj/article/details/81709733

你可能感兴趣的:(基础)