问题描述
我正在尝试将 Spring Boot 版本从 2.1.5.RELEASE 升级到 2.5.1,因此我根据 Spring Cloud 的 Spring Boot 版本系列兼容性将 Spring Cloud 版本从 Greenwich.RELEASE 更改为 2020.0.3。我也在我的项目中使用 spring-cloud-starter-netflix-zuul 和 spring-cloud-starter-netflix-ribbon。我面临的问题是当我构建 maven 时,出现如下错误
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] 'dependencies.dependency.version' for org.springframework.cloud:spring-cloud-starter-netflix-zuul:jar is missing. @ com.xx.xxx.xxx:[unkNown-version],C:\Users\xx\pom.xml,line xx,column xx
[ERROR] 'dependencies.dependency.version' for org.springframework.cloud:spring-cloud-starter-netflix-ribbon:jar is missing. @ com.xx.xxx.xxxh:[unkNown-version],column xx
我的pom文件如下
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.1</version>
</parent>
<repositories>
</repositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2020.0.3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
...
解决方法
之前处于维护模式的许多 Netflix 相关模块已removed in Spring Cloud 2020。这包括您正在使用的 Ribbon 和 Zuul。 Spring Cloud 团队recommend用 Spring Cloud Loadbalancer 替换 Ribbon,用 Spring Cloud Gateway 替换 Zuul。
,spring-cloud 和 netflix-zuul 将按照以下版本运行。
spring-boot-starter-parent: 2.1.3.RELEASE
java.version: 1.8
spring-cloud.version: Greenwich.RELEASE
spring-cloud-starter-netflix-zuul: 2.1.0.RELEASE
spring-cloud-starter-netflix-eureka-client: 2.1.0.RELEASE
jackson-dataformat-xml: 2.9.9
spring-cloud-starter-netflix-eureka-server: 2.1.0.RELEASE