NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<init>([Ljava/lang/Object;)V
在springcloud项目中,修改了springcloud的版本信息,由Brixton.SR5修改为Dalston.SR3导致项目启动报错。如下所示:
java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<init>([Ljava/lang/Object;)V
-
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:157)
-
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:98)
-
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:64)
-
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
-
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
-
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
-
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
-
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:74)
-
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
-
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:351)
-
at org.springframework.boot.SpringApplication.run(SpringApplication.java:317)
-
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246)
-
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1234)
此错误的原因是springcloud的版本信息与springboot不兼容导致。
所以此处给出大家一个spring boot版本和spring cloud版本的匹配关系:
Spring Cloud | Spring Boot |
Hoxton | 兼容Spring Boot 2.2.x |
Greenwich | 兼容Spring Boot 2.1.x |
Finchley | 兼容Spring Boot 2.0.x |
Dalston和Edgware | 兼容Spring Boot 1.5.x |
Camden | 兼容Spring Boot 1.4.x |
Brixton | 兼容Spring Boot 1.3.x |
Angel | 兼容Spring Boot 1.2.x |
同时,spingcloud项目再不同的版本中,<dependency>的写法是不同的。
例如在springcloud的Finchley.SR3版本中。eureka-server的依赖是这样的。
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
但是在Brixton.SR5的版本中,eureka-server依赖是这样的
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency>
如果需要查询不同版本的springcloud包含哪些不同类型依赖。可查询官网