先上一份正确的pom.xml文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ztx114.cn</groupId>
<artifactId>common-eureka</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>common-eureka</name>
<properties>
<spring-boot.version>2.6.1</spring-boot.version>
<spring-cloud.version>2021.0.0</spring-cloud.version>
<eureka.version>2.2.10.RELEASE</eureka.version>
<java.version>1.8</java.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.1</version>
<relativePath/>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
SpringBoot整合SpringCloud两者版本是有严格约束的,详细见SpringBoot官方文档(Spring Cloud):
如果在搭建springboot项目的时候遇到过这样的问题,那么这个问题就是版本兼容问题。
还有一种情况就是关于绑定的问题。提示binder failed,问题大概类似。
这个问题也困扰了我很久。上周五搭建报表项目的时候也突然又遇到这个问题了,所以周六日回去研究了一番,也参考了一些博客关于这方便的解决方案。最终通过自己的多个尝试与分析,解决了问题。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-eureka-client</artifactId>
</dependency>
这里引入注册中心jar包时是不需要指定版本号的。因为springboot与eureka整合的时候两个jar的版本很难兼容。所以我们要让系统自己去匹配。那么系统如何自动去自适应呢。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
加入上边的内容系统就可以自动进行匹配了。