解决Eureka与Springcloud的版本匹配问题

问题描述

  • 学习Eureka的时候开始就被Springcloud和Eureka的版本匹配问题搞吐了,一直报错
  • 报错如下:
Error creating bean with name ‘configurationPropertiesBeans‘ defined in class path resource

原因分析:

  • 网上大家说这个问题就是Springcloud和Netflix提供的Eureka的版本有冲突导致的
  • 问题是找了半天也没有找到版本匹配表,有个办法是让maven自动匹配两者版本
  • 结果我在dependencyManagement中加入了自动匹配版本的东西还是不行
  • 看了别人的pom配置,发现根本问题是没有在properties中指定springcloud的版本
  • 如果不指定springcloud版本,即时自动匹配版本也会报错

解决方案:

操作步骤:

  1. 应该第一步做的,就是查看了Springboot和Springcloud版本对应后,先在property中指定springcloud版本
    <properties>
        <maven.compiler.source>8maven.compiler.source>
        <maven.compiler.target>8maven.compiler.target>
        <spring-cloud.version>2021.0.1spring-cloud.version>
    properties>

我这里用的2.6.4的springcloud对应的版本是2021.0.1 具体版本参考这位老哥的

  1. 如果是有父子工程的,就在父pom的dependencyManagement中加入自动匹配依赖的代码,这样子工程中就会被锁定版本,注意dependencyManagement只是声明了依赖,子依赖需要用的时候还是要在dependency中显式声明
<dependencyManagement>
   <dependencies>
		<dependency>
                <groupId>org.springframework.cloudgroupId>
                <artifactId>spring-cloud-dependenciesartifactId>
                <version>${spring-cloud.version}version>
                <type>pomtype>
                <scope>importscope>
          dependency>
   dependencies>
dependencyManagement>
  1. Eureka的依赖版本不要填,因为dependencyManagement中指定了版本,交给maven自动匹配就好,写死了反而会报错
  <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-netflix-eureka-serverartifactId>
  dependency>

如果是在一个工程里的,pom中就是这样

 <properties>
        <maven.compiler.source>8maven.compiler.source>
        <maven.compiler.target>8maven.compiler.target>
        <spring-cloud.version>2021.0.1spring-cloud.version>
 properties>

  <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-netflix-eureka-serverartifactId>
  dependency>

<dependencyManagement>
   <dependencies>
		<dependency>
                <groupId>org.springframework.cloudgroupId>
                <artifactId>spring-cloud-dependenciesartifactId>
                <version>${spring-cloud.version}version>
                <type>pomtype>
                <scope>importscope>
          dependency>
   dependencies>
dependencyManagement>

你可能感兴趣的:(springcloud,eureka,eureka,spring,cloud)