先说一下背景,因为要用一个springcloud的组件,从对应版本上必须将springboot 2.1.17 升级至springboot 2.6.15。
第一步
更换parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.15</version>
</parent>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.8</version>
</dependency>
比较沙雕的以为这就结束了,直接启动发现报错
org.springframework.core.metrics.ApplicationStartup
面对这个错误我做了以下的操作
1.看ApplicationStartup是哪个包下面的,引入
2.查看对应包的冲突
但是都不能很好的解决问题 是因为这个问题的出现是因为springboot和springcloud的版本对应出现了问题。于是找了一下springboot和springcloud的对应关系,官网网站地址如下Spring Cloud
有了思路就对应去改了一下:步骤如下
1.把spring-context的dependency删掉
2.引入以下的包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2021.0.5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.1.5</version>
</dependency>
至此org.springframework.core.metrics.ApplicationStartup 解决
2.重新启动后再次报错:
Caused by: java.lang.ClassNotFoundException: redis.clients.jedis.util.SafeEncoder
java.lang.NoClassDefFoundError: reactor/core/publisher/TopicProcessor
Correct the classpath of your application so that it contains a single, compatible version of org.springframework.data.redis.repository.configuration.RedisRepositoryConfigurationExtension
等报错
重新解决问题,经过用idea 最新版依赖项分析,操作如下图
发现是java-core没有引入以及redis版本出现了冲突
于是重新增加pom文件配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.6.15</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.27</version>
</dependency>
问题解决,但是这两个包用maven引入的时间还是挺久的,可以多等一下