IDEA依赖冲突管理

一、本地非maven的lib依赖的jar包冲突问题

  • 代码写着写着,突然发现自己本地的IOUtils类使用close方法报错了,一开始以为是JDK版本不对,所以把所有版本调了一下,弄成一致了也没用。
  • 后面,我进入到这个ctrl+左键点击进去该jar包才发现,这个包咋这么熟悉,而且这个版本怎么是JDK6的,对比人其他人没报错的版本是JDK8,是不是其它包也可能包含这个类呢,这个版本可能会更高。
  • 于是我将这个包给完全屏蔽了,突然发现不报错了,commons-io.jar正好有JDK8的版本,我想了下,可能项目还需要这个包,于是我最小范围将该包屏蔽,把相同地方的屏蔽了即可。
  • 如果是maven的话只需要exclude这个包版本即可。
  • 以下是实践截图:
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

二、Maven依赖冲突

如果碰到项目启动不了的情况时,可以根据报错信息定位到大概哪个jar包冲突了,一般冲突有以下原因

  • 依赖覆盖:可能前者依赖先导入,其中部分依赖覆盖了后导入的依赖中的一部分依赖,但是后者可能就正需要这个被覆盖的依赖版本才可运行,这样就导致依赖冲突
  • 本体依赖有问题:可能本体依赖中有些依赖本就出了问题,比如ribbon,在一定版本后就不再进行更新,如果用了高版本的nacos就需要排除该依赖并导入新依赖——loadbalancer,否则后续编写代码可能报错
  • 其它原因:后续更新

示例:

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.2.2.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-loadbalancer</artifactId>
            <version>2.2.2.RELEASE</version>
        </dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值