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的关系匹配,就不会出现该报错了。

原文地址:https://www.cnblogs.com/zer0Black/p/8613224.html

时间: 2024-07-30 20:27:20

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

【重磅】Spring Boot 2.1.0 权威发布

如果这两天登录 https://start.spring.io/ 就会发现,Spring Boot 默认版本已经升到了 2.1.0.这是因为 Spring Boot 刚刚发布了 2.1.0 版本,我们来看下 Spring Boot 2 发布以来第一个子版本都发布了哪些内容? 2.1 中的新特性 将spring-boot-starter-oauth2-oidc-client重命名为spring-boot-starter-oauth2-client命名更简洁 添加 OAuth2 资源服务 start

Spring Boot 2.1.0 已发布,7 个重大更新你需要了解

Spring Boot 2.1.0 在 10 月底就发布了,我们来看下 Spring Boot 2.1.0 都更新了什么,每一个 Java 技术人都值得关注. 栈长其实早就看到了更新了,现在才有时间来更新下. 1.第三方类库升级 Hibernate 5.3 Micrometer 1.1 Reactor Californium Spring Data Lovelace Spring Framework 5.1 Tomcat 9 Undertow 2 主要就更新了这些类库,其实远不止这些. 2.性能

Spring Boot 2.2.0,性能提升+支持Java13

随着 Spring Framework 5.2.0 成功发布之后,Spring Boot 2.2 也紧跟其后,发布了第一个版本:2.2.0.下面就来一起来看看这个版本都更新了些什么值得我们关注的内容. 组件版本更新 这些Spring框架组件更新了依赖版本: Spring AMQP 2.2 Spring Batch 4.2 Spring Data Moore Spring Framework 5.2 Spring HATEOAS 1.0 Spring Integration 5.2 Spring

Spring Boot 2.2.2.RELEASE 版本中文参考文档【3.2 - 3.10】

Spring Boot 2.2.2.RELEASE版本中文文档持续更新中~如有需要获取参考文档文件,关注公众号JavaSo,回复“参考文档”即可. 3.2 结构化代码 Spring Boot不需要任何特定的代码布局即可工作.但是,有一些最佳做法会有所帮助. 3.2.1 使用“default”包 当一个类不包含引入包声明时,将其视为在默认包中.通常不建议使用默认包,应避免这种情况.对于使用@ ComponentScan,@ ConfigurationPropertiesScan,@ EntityS

spring boot连接mysql8.0

今天spring boot的项目数据库从mysql5.7换到mysql8.0,遇到点问题,特此记录下来 查看mysql的版本 mysql> select version();+-----------+| version() |+-----------+| 8.0.12 |+-----------+ 修改mysql的依赖使用MySQL Connector/J <dependency> <groupId>mysql</groupId> <artifactId&g

Spring Boot 1.4.0 Release Notes 更新日志-02

Spring Framework 4.3 Spring Boot 1.4 builds on and requires Spring Framework 4.3. There are a number of nice refinements in Spring Framework 4.3 including new Spring MVC @RequestMapping annotations. Refer to the Spring Framework reference documentati

Spring Boot OAuth 2.0 客户端

在上一篇<OAuth 2.0 授权码请求>中我们已经可以获取到access_token了,本节将使用客户端来访问远程资源 配置资源服务器 授权服务器负责生成并发放访问令牌(access_token),客户端在访问受保护的资源时会带上访问令牌,资源服务器需要解析并验证客户端带的这个访问令牌. 如果你的资源服务器同时也是一个授权服务器(资源服务器和授权服务器在一起),那么资源服务器就不需要考虑令牌解析的事情了,否则这一步是不可或缺的. To use the access token you nee

Spring Boot 2.x 已经发布了很久,现在 Spring Cloud 也发布了 基于 Spring Boot 2.x 的 Finchley 版本,现在一起为项目做一次整体框架升级。

升级前 => 升级后 Spring Boot 1.5.x => Spring Boot 2.0.2 Spring Cloud Edgware SR4 => Spring Cloud Finchley.RELEASE Eureka ServerEureka Server 依赖更新 升级前: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-

Spring Boot 2.2.2.RELEASE 版本中文参考文档

写在前面 在我初次接触MongoDB的时候,是为了做一个监控系统和日志分析系统.当时在用Java操作MongoDB数据里的数据的时候,都是在网上查找Demo示例然后完成的功能,相信大家也同样的体会,网上大都是这种一个入门的小Demo,很少有深入讲解的.功能调通后,自己琢磨效率方面的问题,便开始自己的瞎尝试之路,然后在产品启动阶段初始化多个MongoClient对象,搞了一个类似于连接池一类的池子,完成之后打心眼里觉得自己真是个小机灵鬼. 大概过了一年,为了系统地学习MongoDB的一些高级特性,