springboot2 本地jar包依赖 找不到_Gradle覆盖父类依赖,解决jar包冲突

在Springboot 2.1.13项目中,由于父级build.gradle指定了spring-test 4.1.4版本,导致与子项目所需的5+版本冲突,从而在单元测试时找不到类。解决方法是在子项目的build.gradle中直接指定spring-test的最新版本以覆盖冲突。若遇到jar包冲突,可查询Springboot官方文档确认依赖版本,或者通过创建新的SpringBoot项目对比差异。
摘要由CSDN通过智能技术生成

cc2c575d9d88ccdf48182efca388a5f5.png

依赖结构

├── project
|    |
|    └──build.gradle
├── build.gradle
└── settings.gradle

最外层的build.gradle里面有这样一段定义

subprojects {
    dependencies {
        compile (
                'org.springframework:spring-test:4.1.4.RELEASE'
        )
    }
}

指定了所有的子项目都用spring-test 4.1.4这个版本,但是子项目是基于Springboot 2.1.13,需要spring-test 5+

这样就造成project这个子项目的单元测试无法使用,找不到org.springframework.test.context.junit4.SpringRunner这个类,因为spring-test 4.1.4没有这个类

Springboot 单元测试代码如下

package xxx.xxx;
​
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;//找不到
​
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestTask {
​
    @Test
    public void test(){
        System.out.println("starting");
    }
}

解决方案

直接覆盖冲突的jar包即可

  • 覆盖 直接在project/build.gradle下指定最新版本覆盖
dependencies {
    //显示指定spring-test版本为5+,避免父级subprojects定义的4.1.4.RELEASE版本带来的冲突
    compile 'org.springframework:spring-test:5.1.14.RELEASE'
}
​

Springboot jar包冲突很难查找,有时候不知道该用哪个版本的jar包,如果怀疑是jar包冲突,先看看此网站该Springboot版本依赖的jar包版本是多少,依赖查询参考:将url里面的版本号替换成目标版本即可

https://docs.spring.io/spring-boot/docs/2.1.13.RELEASE/reference/htmlsingle/#appendix-dependency-versions

如果找不到冲突的jar包,重新从spring官网下载一个空壳项目跑起来看看别人能运行的和你的项目到底有什么区别,SpringBoot空项目生成

https://start.spring.io/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值