spring boot 2.0.0由于版本不匹配导致的NoSuchMethodError问题解析
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的关系匹配,就不会出现该报错了。
spring boot 2.0.0由于版本不匹配导致的NoSuchMethodError问题解析的更多相关文章
- Spring Boot 2.1.0 已发布,7 个重大更新!
		距离<重磅:Spring Boot 2.0 正式发布!>已经过去大半年了,而 Spring Boot 2.1.0 在 10 月底就发布了,我们来看下 Spring Boot 2.1.0 都 ... 
- (转)Spring Boot 2 (九):【重磅】Spring Boot 2.1.0 权威发布
		http://www.ityouknow.com/springboot/2018/11/03/spring-boot-2.1.html 如果这两天登录 https://start.spring.io/ ... 
- 【重磅】Spring Boot 2.1.0 权威发布
		如果这两天登录 https://start.spring.io/ 就会发现,Spring Boot 默认版本已经升到了 2.1.0.这是因为 Spring Boot 刚刚发布了 2.1.0 版本,我们 ... 
- Spring boot 2.1.0 -- swagger2 整合
		依赖版本信息 Spring boot 2.1.0.RELEASE swagger2 2.7.0 1. mvn 配置 pom.xml 包引入 <!--swagger2依赖--> <d ... 
- Spring Boot 2.2.0,性能提升+支持Java13
		随着 Spring Framework 5.2.0 成功发布之后,Spring Boot 2.2 也紧跟其后,发布了第一个版本:2.2.0.下面就来一起来看看这个版本都更新了些什么值得我们关注的内容. ... 
- Spring Boot 2.3.0正式发布:优雅停机、配置文件位置通配符新特性一览
		当大潮退去,才知道谁在裸泳..关注公众号[BAT的乌托邦]开启专栏式学习,拒绝浅尝辄止.本文 https://www.yourbatman.cn 已收录,里面一并有Spring技术栈.MyBatis. ... 
- spring boot:redis+lua实现生产环境中可用的秒杀功能(spring boot 2.2.0)
		一,秒杀需要具备的功能: 秒杀通常是电商中用到的吸引流量的促销活动方式 搭建秒杀系统,需要具备以下几点: 1,限制每个用户购买的商品数量,(秒杀价格为吸引流量一般会订的很低,不能让一个用户全部抢购到手 ... 
- spring boot:用redis+lua实现基于ip地址的分布式流量限制(限流/简单计数器算法)(spring boot 2.2.0)
		一,限流有哪些环节? 1,为什么要限流? 目的:通过对并发请求进行限速或者一个时间单位内的的请求进行限速,目的是保护系统可正常提供服务,避免被压力太大无法响应服务. 如果达到限制速率则可以采取预定的处 ... 
- spring boot:用redis+lua实现表单接口的幂等性(spring boot 2.2.0)
		一,什么是幂等性? 1,幂等: 幂等操作:不管执行多少次,所产生的影响都和一次执行的影响相同. 幂等函数或幂等方法:可以使用相同的参数重复执行,并能获得相同的结果的函数/方法. 这些函数/方法不用担心 ... 
随机推荐
- 一句Python,一句R︱pandas模块——高级版data.frame
			先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句python,对应写一句R. pandas可谓如雷贯耳,数据处理神器. 以下符号: = ... 
- SystemVerilog语言简介(一)
			1. 接口(Interface) Verilog模块之间的连接是通过模块端口进行的.为了给组成设计的各个模块定义端口,我们必须对期望的硬件设计有一个详细的认识.不幸的是,在设计的早期,我们很难把握设计 ... 
- 如何获取Linux-gate.so.1动态库
			前面"Linux应用程序Helloworld入门"已经提到在Linux下每个可执行文件都依赖于几个最为基本的动态库,其中一个就是linux-gate.so.1. 从上面ldd给出的 ... 
- PL/SQL   NOCOPY限制模式
			NOCOPY模式用于限定OUT模式和IN OUT模式在调用时是不是以传引用的方式进行. 默认情况下,OUT模式和IN OUT模式的参数是以传值的方式进行调用的. IN模式总是以传引用的方式,如果用NO ... 
- 获取Filter的三种途径
			一.通过CLSID [cpp] view plaincopyprint? IBaseFilter *pF = 0; HRESULT hr = CoCreateInstance(clsid, 0, CL ... 
- Octave 命令积累
			Octave Learning : puts all elements into a single vector :put B at A's right :put B at A's Bottom :将 ... 
- xml文件的规则
			一,规则 1.1,样本 <?xml version="1.0" encoding="utf-8"?> <contactList> < ... 
- freemarker字符串拼接(十二)
			freemarker字符串拼接 1.字符串拼接的几种类型 (1)字符串和字符串 (2)字符串和数字 (3)字符串和字符串变量 (4)字符串变量和字符串变量 2.演示示例 <#--定义字符串--& ... 
- Win Form不能响应键盘事件
			在窗体属性中,将KeyPreview设置为true 
- RobotFramework自动化测试框架的基础关键字(一)
			1.1.1 如何搜索RobotFramework的关键字 有两种方式可以快速的打开RIDE的关键字搜索对话框 1.选择菜单栏Tools->Search Keywords,然后会出现 ... 
