跳至主要內容

2、Spring、Spring Boot 和 Spring Cloud 版本管理

安图新大约 24 分钟

2、Spring、Spring Boot 和 Spring Cloud 版本管理

Spring 官网地址: https://spring.io/open in new window

Spring Boot 官网地址: https://spring.io/projects/spring-bootopen in new window

Spring Cloud 官网地址: https://spring.io/projects/spring-cloudopen in new window

Spring Initializr 官网地址: https://start.spring.io/open in new window

Spring Boot 官方文档: https://docs.spring.io/spring-boot/docs/open in new window

Spring Boot 官方各版本文档: https://docs.spring.io/spring-boot/docs/{版本号}/reference/htmlsingle/open in new window

1.如何查看项目中使用的版本?

以下提供了三种查看项目所使用的 Spring 版本的方法:

  • 1.通过代码进行查看:可以查看 Spring、Spring Boot 版本;
  • 2.通过 pom.xml 进行查看:可以查看 Spring Boot、Spring Cloud 版本;
  • 3.通过 mvn 命令进行查看:可以查看 Spring、Spring Boot、Spring Cloud 版本。

下面我们就看下这三种方法的具体使用:

1)通过代码进行查看

可以查看 SpringSpring Boot 版本。

import org.junit.jupiter.api.Test;
import org.springframework.boot.SpringBootVersion;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.SpringVersion;

@SpringBootTest
class SpringbootDemoApplicationTests {



    @Test
    public void getSpringVersion() {


        String springVersion = SpringVersion.getVersion();
        String springBootVersion = SpringBootVersion.getVersion();
        System.out.println("springVersion: " + springVersion);
        System.out.println("springBootVersion: " + springBootVersion);
    }
}

执行结果:

 
 

从代码打印结果可以看到:

  • Spring 版本为 5.1.14.RELEASE;
  • Spring Boot 版本为 2.1.13.RELEASE。

2)通过 pom.xml 进行查看

可以查看 Spring BootSpring Cloud 版本。

<!-- Spring Boot(集成方式1:parent) -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.13.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<!-- Spring Boot(集成方式2:单独引用dependency) -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.1.13.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

<!-- Spring Boot(集成方式3:集中引用) -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${spring-boot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<!-- Spring Cloud -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Greenwich.SR3</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

pom.xml 中可以看到:

  • spring-boot-starter-web 和 spring-boot-dependencies 版本为 2.1.13.RELEASE;
  • spring-cloud-dependencies 版本为 Greenwich.SR3。

3)通过 mvn 命令进行查看

可以查看 SpringSpring BootSpring Cloud 版本。

mvn dependency:tree

执行结果:

[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:2.1.13.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:2.1.13.RELEASE:compile
[INFO] |  |  +- ...
[INFO] |  +- org.springframework.boot:spring-boot-starter-json:jar:2.1.13.RELEASE:compile
[INFO] |  |  +- ...
[INFO] |  +- org.springframework.boot:spring-boot-starter-tomcat:jar:2.1.13.RELEASE:compile
[INFO] |  |  +- ...
[INFO] |  +- org.hibernate.validator:hibernate-validator:jar:6.0.18.Final:compile
[INFO] |  |  \- ...
[INFO] |  +- org.springframework:spring-web:jar:5.1.14.RELEASE:compile
[INFO] |  |  \- ...
[INFO] |  \- org.springframework:spring-webmvc:jar:5.1.14.RELEASE:compile

mvn 命令执行结果可以看到:

  • spring-web 和 spring-webmvc 版本 5.1.14.RELEASE;
  • spring-boot-starter-web 版本为 2.1.13.RELEASE;
  • Spring Cloud 版本可以通过 Spring Boot 的版本对应到 Greenwich。

2.Spring Boot 和 Spring 版本对应关系

1)根据官网判断

Spring Boot 官网:https://spring.io/projects/spring-boot#learnopen in new window

GA General Availability 表示官方确认发布的稳定版本)
 

Spring Boot 官网 RELEASE 版本清单:https://github.com/spring-projects/spring-boot/wiki#release-notesopen in new window

 
 

可以点击官网中相应的版本,查看版本的说明文档,如果文档中没有 Spring Framework 相关内容,则表示 Spring Framework 没有版本升级,可以再看下再之前的版本,使用的是什么的版本。

例如:Spring Boot 3.0 版本中升级了 Spring 6,文档中就会有说明:

 
 

2)根据官方文档判断

Spring Boot 官方文档: https://docs.spring.io/spring-boot/docs/open in new window

Spring Boot 官方各版本文档: https://docs.spring.io/spring-boot/docs/版本号/reference/htmlsingle/open in new window

注意: 由于官方文档比较大,用浏览器访问会有点卡顿。

Tips: 在官方文档中直接搜索 Requirements 就可以看到 Spring Boot 所依赖的 Java、Spring Framework、Tomcat 等版本信息。(1.2.0.RELEASE 之后 Requirements 的描述比较完善。)

2.1)查看具体版本的官方文档

例如:想查看 2.1.13.RELEASE 版本的官方文档,可以访问如下地址:

https://docs.spring.io/spring-boot/docs/2.1.13.RELEASE/reference/htmlsingle/open in new window

 
 
2.2)查看大版本的官方文档

例如:想查看 2.1.x 大版本的官方文档,可以访问如下地址:

https://docs.spring.io/spring-boot/docs/2.1.x/reference/htmlsingle/open in new window

 
 

3)根据 Maven 仓库判断

Maven 仓库地址: https://mvnrepository.com/open in new window

从 Maven 仓库中搜索相应的 spring-boot-starter-web 包,查看详情可以看到该 jar 包底层是依赖于哪些包。

 
 

3)根据官方文档整理的版本对应信息【核心】

下面梳理了 SpringBoot1.0.0.RELEASE3.0.4 版本所对应的 SpringJDKMaven 版本信息。

(点击版本号进入相应版本的官方文档)

Spring Boot 版本Spring Framework 版本JDK 版本Maven 版本
1.0.0.RELEASE4.0.3.RELEASEJava 1.6Maven (3.0+)
1.0.1.RELEASE4.0.3.RELEASEJava 1.6Maven (3.0+)
1.0.2.RELEASE4.0.3.RELEASEJava 1.6Maven (3.0+)
1.1.0.RELEASE4.0.5.RELEASEJava 1.6Maven (3.0+)
1.1.1.RELEASE4.0.5.RELEASEJava 1.6Maven (3.0+)
1.1.2.RELEASE4.0.5.RELEASEJava 1.6Maven (3.0+)
1.1.3.RELEASE4.0.5.RELEASEJava 1.6Maven (3.0+)
1.1.4.RELEASE4.0.6.RELEASEJava 1.6Maven (3.0+)
1.1.5.RELEASE4.0.6.RELEASEJava 1.6Maven (3.0+)
1.1.6.RELEASE4.0.7.RELEASEJava 1.6Maven (3.0+)
1.1.7.RELEASE4.0.7.RELEASEJava 1.6Maven (3.0+)
1.1.8.RELEASE4.0.7.RELEASEJava 1.6Maven (3.0+)
1.1.9.RELEASE4.0.8.RELEASEJava 1.6Maven (3.0+)
1.1.10.RELEASE4.0.8.RELEASEJava 1.6Maven (3.0+)
1.1.11.RELEASE4.0.9.RELEASEJava 1.6Maven (3.0+)
1.1.12.RELEASE4.0.9.RELEASEJava 1.6Maven (3.0+)
1.2.0.RELEASE4.1.3.RELEASEJava 6,推荐 Java 8Maven (3.2+)
1.2.1.RELEASE4.1.4.RELEASE,支持4.1.3及以上Java 6,推荐 Java 8Maven (3.2+)
1.2.2.RELEASE4.1.5.RELEASE,支持4.1.3及以上Java 7,推荐 Java 8Maven (3.2+)
1.2.3.RELEASE4.1.6.RELEASE,支持4.1.5及以上Java 7,推荐 Java 8Maven (3.2+)
1.2.4.RELEASE4.1.6.RELEASE,支持4.1.5及以上Java 7,推荐 Java 8Maven (3.2+)
1.2.5.RELEASE4.1.7.RELEASE,支持4.1.5及以上Java 7,推荐 Java 8Maven (3.2+)
1.2.6.RELEASE4.1.7.RELEASE,支持4.1.5及以上Java 7,推荐 Java 8Maven (3.2+)
1.2.7.RELEASE4.1.8.RELEASE,支持4.1.5及以上Java 7,推荐 Java 8Maven (3.2+)
1.2.8.RELEASE4.1.9.RELEASE,支持4.1.5及以上Java 7,推荐 Java 8Maven (3.2+)
1.3.0.RELEASE4.2.3.RELEASE,支持4.1.5及以上Java 7,推荐 Java 8Maven (3.2+)
1.3.1.RELEASE4.2.4.RELEASE,支持4.1.5及以上Java 7,推荐 Java 8Maven (3.2+)
1.3.2.RELEASE4.2.4.RELEASE,支持4.1.5及以上Java 7,推荐 Java 8Maven (3.2+)
1.3.3.RELEASE4.2.5.RELEASE,支持4.1.5及以上Java 7,推荐 Java 8Maven (3.2+)
1.3.4.RELEASE4.2.6.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.3.5.RELEASE4.2.6.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.3.6.RELEASE4.2.7.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.3.7.RELEASE4.2.7.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.3.8.RELEASE4.2.8.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.4.0.RELEASE4.3.2.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.4.1.RELEASE4.3.3.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.4.2.RELEASE4.3.4.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.4.3.RELEASE4.3.5.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.4.4.RELEASE4.3.6.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.4.5.RELEASE4.3.7.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.4.6.RELEASE4.3.8.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.4.7.RELEASE4.3.9.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.0.RELEASE4.3.6.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.1.RELEASE4.3.6.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.2.RELEASE4.3.7.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.3.RELEASE4.3.8.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.4.RELEASE4.3.9.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.5.RELEASE4.3.10.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.6.RELEASE4.3.10.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.7.RELEASE4.3.11.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.8.RELEASE4.3.12.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.9.RELEASE4.3.13.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.10.RELEASE4.3.14.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.11.RELEASE4.3.15.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.12.RELEASE4.3.16.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.13.RELEASE4.3.17.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.14.RELEASE4.3.18.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.15.RELEASE4.3.18.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.16.RELEASE4.3.19.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.17.RELEASE4.3.20.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.18.RELEASE4.3.21.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.19.RELEASE4.3.22.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.20.RELEASE4.3.23.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.21.RELEASE4.3.24.RELEASEJava 7,推荐 Java 8Maven (3.2+)
1.5.22.RELEASE4.3.25.RELEASEJava 7,推荐 Java 8Maven (3.2+)
2.0.0.RELEASE5.0.4.RELEASEJava 8 or 9Maven 3.2+
2.0.1.RELEASE5.0.5.RELEASEJava 8 or 9Maven 3.2+
2.0.2.RELEASE5.0.6.RELEASEJava 8 or 9Maven 3.2+
2.0.3.RELEASE5.0.7.RELEASEJava 8 or 9Maven 3.2+
2.0.4.RELEASE5.0.8.RELEASEJava 8 or 9Maven 3.2+
2.0.5.RELEASE5.0.9.RELEASEJava 8 or 9Maven 3.2+
2.0.6.RELEASE5.0.10.RELEASEJava 8 or 9Maven 3.2+
2.0.7.RELEASE5.0.11.RELEASEJava 8 or 9Maven 3.2+
2.0.8.RELEASE5.0.12.RELEASEJava 8 or 9Maven 3.2+
2.0.9.RELEASE5.0.13.RELEASEJava 8 or 9Maven 3.2+
2.1.0.RELEASE5.1.2.RELEASEJava 8 or 9Maven 3.3+
2.1.1.RELEASE5.1.3.RELEASEJava 8,支持Java 11Maven 3.3+
2.1.2.RELEASE5.1.4.RELEASEJava 8,支持Java 11Maven 3.3+
2.1.3.RELEASE5.1.5.RELEASEJava 8,支持Java 11Maven 3.3+
2.1.4.RELEASE5.1.6.RELEASEJava 8,支持Java 11Maven 3.3+
2.1.5.RELEASE5.1.7.RELEASEJava 8,支持Java 11Maven 3.3+
2.1.6.RELEASE5.1.8.RELEASEJava 8,支持Java 11Maven 3.3+
2.1.7.RELEASE5.1.9.RELEASEJava 8,支持Java 12Maven 3.3+
2.1.8.RELEASE5.1.9.RELEASEJava 8,支持Java 12Maven 3.3+
2.1.9.RELEASE5.1.10.RELEASEJava 8,支持Java 12Maven 3.3+
2.1.10.RELEASE5.1.11.RELEASEJava 8,支持Java 12Maven 3.3+
2.1.11.RELEASE5.1.12.RELEASEJava 8,支持Java 12Maven 3.3+
2.1.12.RELEASE5.1.13.RELEASEJava 8,支持Java 12Maven 3.3+
2.1.13.RELEASE5.1.14.RELEASEJava 8,支持Java 12Maven 3.3+
2.1.14.RELEASE5.1.15.RELEASEJava 8,支持Java 12Maven 3.3+
2.1.15.RELEASE5.1.16.RELEASEJava 8,支持Java 12Maven 3.3+
2.1.16.RELEASE5.1.17.RELEASEJava 8,支持Java 12Maven 3.3+
2.1.17.RELEASE5.1.18.RELEASEJava 8,支持Java 12Maven 3.3+
2.1.18.RELEASE5.1.19.RELEASEJava 8,支持Java 12Maven 3.3+
2.2.0.RELEASE5.2.0.RELEASEJava 8,支持Java 13Maven 3.3+
2.2.1.RELEASE5.2.1.RELEASEJava 8,支持Java 13Maven 3.3+
2.2.2.RELEASE5.2.2.RELEASEJava 8,支持Java 13Maven 3.3+
2.2.3.RELEASE5.2.3.RELEASEJava 8,支持Java 13Maven 3.3+
2.2.4.RELEASE5.2.3.RELEASEJava 8,支持Java 13Maven 3.3+
2.2.5.RELEASE5.2.4.RELEASEJava 8,支持Java 13Maven 3.3+
2.2.6.RELEASE5.2.5.RELEASEJava 8,支持Java 13Maven 3.3+
2.2.7.RELEASE5.2.6.RELEASEJava 8,支持Java 14Maven 3.3+
2.2.8.RELEASE5.2.7.RELEASEJava 8,支持Java 14Maven 3.3+
2.2.9.RELEASE5.2.8.RELEASEJava 8,支持Java 14Maven 3.3+
2.2.10.RELEASE5.2.9.RELEASEJava 8,支持Java 14Maven 3.3+
2.2.11.RELEASE5.2.10.RELEASEJava 8,支持Java 15Maven 3.3+
2.2.12.RELEASE5.2.12.RELEASEJava 8,支持Java 15Maven 3.3+
2.2.13.RELEASE5.2.12.RELEASEJava 8,支持Java 15Maven 3.3+
2.3.0.RELEASE5.2.6.RELEASEJava 8,支持Java 14Maven 3.3+
2.3.1.RELEASE5.2.7.RELEASEJava 8,支持Java 14Maven 3.3+
2.3.2.RELEASE5.2.8.RELEASEJava 8,支持Java 14Maven 3.3+
2.3.3.RELEASE5.2.8.RELEASEJava 8,支持Java 14Maven 3.3+
2.3.4.RELEASE5.2.9.RELEASEJava 8,支持Java 14Maven 3.3+
2.3.5.RELEASE5.2.10.RELEASEJava 8,支持Java 15Maven 3.3+
2.3.6.RELEASE5.2.11.RELEASEJava 8,支持Java 15Maven 3.3+
2.3.7.RELEASE5.2.12.RELEASEJava 8,支持Java 15Maven 3.3+
2.3.8.RELEASE5.2.12.RELEASEJava 8,支持Java 15Maven 3.3+
2.3.9.RELEASE5.2.13.RELEASEJava 8,支持Java 15Maven 3.3+
2.3.10.RELEASE5.2.14.RELEASEJava 8,支持Java 15Maven 3.3+
2.3.11.RELEASE5.2.15.RELEASEJava 8,支持Java 15Maven 3.5+
2.3.12.RELEASE5.2.15.RELEASEJava 8,支持Java 15Maven 3.5+
2.4.05.3.1Java 8,支持Java 15Maven 3.3+
2.4.15.3.2Java 8,支持Java 15Maven 3.3+
2.4.25.3.3Java 8,支持Java 15Maven 3.3+
2.4.35.3.4Java 8,支持Java 15Maven 3.3+
2.4.45.3.5Java 8,支持Java 16Maven 3.3+
2.4.55.3.6Java 8,支持Java 16Maven 3.3+
2.4.65.3.7Java 8,支持Java 16Maven 3.5+
2.4.75.3.8Java 8,支持Java 16Maven 3.5+
2.4.85.3.8Java 8,支持Java 16Maven 3.5+
2.4.95.3.9Java 8,支持Java 16Maven 3.5+
2.4.105.3.9Java 8,支持Java 16Maven 3.5+
2.4.115.3.10Java 8,支持Java 16Maven 3.5+
2.4.125.3.12Java 8,支持Java 16Maven 3.5+
2.4.135.3.13Java 8,支持Java 16Maven 3.5+
2.5.05.3.7Java 8,支持Java 16Maven 3.5+
2.5.15.3.8Java 8,支持Java 16Maven 3.5+
2.5.25.3.8Java 8,支持Java 16Maven 3.5+
2.5.35.3.9Java 8,支持Java 16Maven 3.5+
2.5.45.3.9Java 8,支持Java 16Maven 3.5+
2.5.55.3.10Java 8,支持Java 17Maven 3.5+
2.5.65.3.12Java 8,支持Java 17Maven 3.5+
2.5.75.3.13Java 8,支持Java 17Maven 3.5+
2.5.85.3.14Java 8,支持Java 17Maven 3.5+
2.5.95.3.15Java 8,支持Java 17Maven 3.5+
2.5.105.3.16Java 8,支持Java 17Maven 3.5+
2.5.115.3.17Java 8,支持Java 17Maven 3.5+
2.5.125.3.18Java 8,支持Java 17Maven 3.5+
2.5.135.3.19Java 8,支持Java 17Maven 3.5+
2.5.145.3.20Java 8,支持Java 18Maven 3.5+
2.6.05.3.13Java 8,支持Java 17Maven 3.5+
2.6.15.3.13Java 8,支持Java 17Maven 3.5+
2.6.25.3.14Java 8,支持Java 17Maven 3.5+
2.6.35.3.15Java 8,支持Java 17Maven 3.5+
2.6.45.3.16Java 8,支持Java 17Maven 3.5+
2.6.55.3.17Java 8,支持Java 17Maven 3.5+
2.6.65.3.18Java 8,支持Java 17Maven 3.5+
2.6.75.3.19Java 8,支持Java 17Maven 3.5+
2.6.85.3.20Java 8,支持Java 18Maven 3.5+
2.6.95.3.21Java 8,支持Java 18Maven 3.5+
2.6.105.3.22Java 8,支持Java 18Maven 3.5+
2.6.115.3.22Java 8,支持Java 18Maven 3.5+
2.6.125.3.23Java 8,支持Java 19Maven 3.5+
2.6.135.3.23Java 8,支持Java 19Maven 3.5+
2.6.145.3.24Java 8,支持Java 19Maven 3.5+
2.7.05.3.20Java 8,支持Java 18Maven 3.5+
2.7.15.3.21Java 8,支持Java 18Maven 3.5+
2.7.25.3.22Java 8,支持Java 18Maven 3.5+
2.7.35.3.22Java 8,支持Java 18Maven 3.5+
2.7.45.3.23Java 8,支持Java 19Maven 3.5+
2.7.55.3.23Java 8,支持Java 19Maven 3.5+
2.7.65.3.24Java 8,支持Java 19Maven 3.5+
2.7.75.3.24Java 8,支持Java 19Maven 3.5+
2.7.85.3.25Java 8,支持Java 19Maven 3.5+
2.7.95.3.25Java 8,支持Java 19Maven 3.5+
3.0.06.0.2Java 17,支持Java 19Maven 3.5+
3.0.16.0.3Java 17,支持Java 19Maven 3.5+
3.0.26.0.4Java 17,支持Java 19Maven 3.5+
3.0.36.0.5Java 17,支持Java 19Maven 3.5+
3.0.46.0.6Java 17,支持Java 19Maven 3.5+

文章篇幅有限,Gradle 版本、Tomcat 版本、Jetty 版本、Undertow 版本等信息可以下载 Excel 文件查看。

完整 Excel 下载地址:https://download.csdn.net/download/qq_33204709/87577409open in new window

需要注意的是,这只是一个大致的对应关系,并不是绝对的。在实际使用中,可能会存在不同版本的 Spring Boot 与 Spring Framework 版本搭配使用的情况。同时,不同版本的 Spring Boot 也可能会引入不同版本的 Spring Framework 模块,因此需要根据具体情况进行选择和调整。

建议在使用 Spring Boot 时,参考 Spring Boot 官方文档中的版本兼容性说明,以确定所使用的 Spring Framework 版本。

3.Spring Cloud 和 Spring Boot 版本对应关系

从 Spring Cloud 官方页面我们可以看到最新的 Spring Boot 和 Spring Cloud 的对应关系。

Spring Cloud 官网地址:https://spring.io/projects/spring-cloudopen in new window

 
 

如果我们想知道具体版本 Spring Cloud 和 Spring Boot 的对应关系,只需要将下面的地址的版本号替换为具体的 Spring Cloud 版本号即可:

https://docs.spring.io/spring-cloud/docs/版本号/reference/html/

例如:https://docs.spring.io/spring-cloud/docs/2020.0.0/reference/html/open in new window

 
 

官方提示:

Spring Cloud Dalston, Edgware, Finchley, and Greenwich have all reached end of life status and are no longer supported.

Bug fixes and backwards compatible features are added to each release train via a service release (SR). Once you determine which version of Spring Cloud to use, you should use the latest service release for that release train. You can find the latest service release information on our release notes page.

翻译:

Spring Cloud 的 DalstonEdgwareFinchley、和 Greenwich 版本已经终结,不再提供支持。

Bug 修复和 共用特性的添加会发布在 RELEASE 版本中。当使用 Spring Cloud 框架某个版本时,应该选择该版本中最新的 RELEASE 版本。

查询各版本最新 RELEASE 版的网址:https://github.com/spring-cloud/spring-cloud-release/wikiopen in new window

补充:

1.通过 Spring Initializr 下载的包构建报错:类文件具有错误的版本 61.0, 应为 52.0

完整报错信息:

D:\java\jdk1.8.0_60\bin\java.exe "-Dmaven.multiModuleProjectDirectory=C:\Users\lenovo\Downloads\demo (1)\demo" -Dmaven.home=D:\java\apache-maven-3.6.1 -Dclassworlds.conf=D:\java\apache-maven-3.6.1\bin\m2.conf "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2019.1.3\lib\idea_rt.jar=58737:D:\Program Files\JetBrains\IntelliJ IDEA 2019.1.3\bin" -Dfile.encoding=UTF-8 -classpath D:\java\apache-maven-3.6.1\boot\plexus-classworlds-2.6.0.jar org.codehaus.classworlds.Launcher -Didea.version2019.1.3 -s D:\java\apache-maven-3.6.1\conf\settings.xml clean install
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------------< com.example:demo >--------------------------
[INFO] Building demo 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.2.0:clean (default-clean) @ demo ---
[INFO] Deleting C:\Users\lenovo\Downloads\demo (1)\demo\target
[INFO]
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ demo ---
[INFO] Copying 1 resource
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.10.1:compile (default-compile) @ demo ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to C:\Users\lenovo\Downloads\demo (1)\demo\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /C:/Users/lenovo/Downloads/demo (1)/demo/src/main/java/com/example/demo/DemoApplication.java:[3,32] 无法访问org.springframework.boot.SpringApplication
  错误的类文件: D:\maven_repository\org\springframework\boot\spring-boot\3.0.4\spring-boot-3.0.4.jar(org/springframework/boot/SpringApplication.class)
    类文件具有错误的版本 61.0, 应为 52.0
    请删除该文件或确保该文件位于正确的类路径子目录中。
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.412 s
[INFO] Finished at: 2023-03-13T09:56:48+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) on project demo: Compilation failure
[ERROR] /C:/Users/lenovo/Downloads/demo (1)/demo/src/main/java/com/example/demo/DemoApplication.java:[3,32] 无法访问org.springframework.boot.SpringApplication
[ERROR]   错误的类文件: D:\maven_repository\org\springframework\boot\spring-boot\3.0.4\spring-boot-3.0.4.jar(org/springframework/boot/SpringApplication.class)
[ERROR]     类文件具有错误的版本 61.0, 应为 52.0
[ERROR]     请删除该文件或确保该文件位于正确的类路径子目录中。
[ERROR]
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Process finished with exit code 1

报错原因:

使用的 Spring 版本较高,SpringBoot 3.x 依赖的是 Spring 6.x。

Spring 3.x 需要使用 JDK17 进行编译,如果本地使用的是 JDK8 编译构建就会报错。

 
 

解决方法:

降低依赖版本,Spring Boot 改为使用 2.x 版本即可。

 
 

整理完毕,完结撒花~

参考地址:

1、 类文件具有错误的版本 61.0,应为 52.0 的解决方法,https://blog.csdn.net/BHSZZY/article/details/128925740;