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