您的位置:首页 > 编程语言 > Java开发

spring boot 2.0.0由于版本不匹配导致的NoSuchMethodError问题解析

2018-03-27 11:34 921 查看

spring boot升级到2.0.0以后,项目突然报出

NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<init>
异常,

跟踪源代码无果的情况下。突然想到有可能是spring boot 和 spring cloud版本不匹配导致的。
于是,上官网看spring cloud的依赖,首先看
Edgware.SR2
版本的依赖,可以看出
Edgware.SR2
依赖是1.5.X版本

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Edgware.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

再看

Finchley
版本的依赖,可以看出
Finchley
依赖的是2.0.0版本

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.BUILD-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

查看官网目前最新的

Finchley
版本是
Finchley.M8
,所以对于使用spring boot2.0.0的朋友,只要将对应的spring cloud切换为
Finchley.M8
版本,即可解决
SpringApplicationBuilder.<init>报出NoSuchMethodError
的问题。下面给出大家一个spring boot版本和spring cloud版本的匹配关系:

Spring Cloud Spring Boot
Finchley 兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.x
Dalston和Edgware 兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x
Camden 兼容Spring Boot 1.4.x,也兼容Spring Boot 1.5.x
Brixton 兼容Spring Boot 1.3.x,也兼容Spring Boot 1.4.x
Angel 兼容Spring Boot 1.2.x

只要按照上述表格做spring boot和spring cloud的关系匹配,就不会出现该报错了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐