java NoSuchMethodException:ConfigDataEnvironmentPostProcessor.< init>()与Sping Boot 3.0.6和NetflixEureka

vngu2lb8  于 2023-05-05  发布在  Java
关注(0)|答案(1)|浏览(222)

以下是相关的pom设置:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.0.6</version>
</parent>
....
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>

当尝试从IntelliJ运行下面的代码时:

@EnableEurekaServer
@SpringBootApplication
public class ServiceRegistrationAndDiscoveryServiceApplication {
  public static void main(String[] args) {
    SpringApplication.run(ServiceRegistrationAndDiscoveryServiceApplication.class, args);
  }
}

它会抛出如下错误:

Caused by: java.lang.NoSuchMethodException: org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.<init>()

这看起来很简单,但是我没有办法找到包含这个类的jar。document没有说明它是如何捆绑的。合理的依赖关系是:

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <version>3.0.4</version>
    </dependency>

但看它的内部,它没有说的类,甚至包名也不匹配。
这个神秘的jar在哪里?

6ie5vjzr

6ie5vjzr1#

您面临的问题是关于Sping Boot 和Spring Cloud的兼容性问题之一。这里有一个兼容性矩阵,说明您应该使用哪对版本:Is there a compatibility matrix of Spring-boot and Spring-cloud?
尝试根据它更新依赖项的版本。我建议使用Spring BOM而不是显式定义的父对象,因为使用可以使用兼容性矩阵导入多个BOM(在本例中为Sping Boot 和Spring Cloud),但您的项目只能有一个父对象。
对你来说应该是

<dependencyManagement>
        <dependencies>
             <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2022.0.2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>3.0.6</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
</dependencyManagement>

相关问题