SpringBoot项目升级JDK版本(1.8 => 17)

项目:这里使用gitee上一个开源项目做测试《SpringBoot 流媒体项目
工具:Intellij IDEA

一、下载项目(git clone …)

1、打开 pom.xml 看一下
在这里插入图片描述
2、启动项目,记住它最原本的样子先。成功启动后控制台后面是会输出地址链接的
在这里插入图片描述
在这里插入图片描述

二、切换JDK版本启动测试

1、File 》Project Structure 》Project 切换JDK为17
在这里插入图片描述2、File 》Project Structure 》Modules 切换JDK为17
在这里插入图片描述
3、启动测试!!!不出所料,果然没怎么顺利。这报错是因为少了maven依赖
在这里插入图片描述
4、我这里添加了缺失的依赖再次启动,如下截图,启动成功了
在这里插入图片描述
5、打包测试,报错了…
在这里插入图片描述
意料之内,不会怎么简单的!!!
下面我就将所有要改动的地方列出来。

三、修改

1、修改框架至JDK17兼容版本

  1. SpringBoot框架要升级到JDK17兼容版本
  2. java.version修改为17

<maven.test.skip>: 这是一个 Maven 属性,用于控制是否跳过测试。如果将其设置为 true,Maven 在执行构建(如 mvn install 或 mvn package)时将不会运行任何单元测试。
作用:当开发者在开发过程中或者在一些特定情况下,不想执行单元测试,可以使用这个配置来跳过测试。例如,代码还没有完善到可以进行测试的程度,或者测试环境还没有准备好。
使用场景:快速构建:在开发过程中,可能需要频繁地进行构建,跳过测试可以加快构建速度。
临时需求:在一些临时性的构建需求中,可能不需要执行测试。

在这里插入图片描述
2、增加所需依赖

mysql 依赖大家按需增加,项目默认使用的是 h2 数据库。我的需求要求使用 MySQL,所以替换掉了。

<!-- jdk-17 添加 javafx 依赖 -->
		<dependency>
			<groupId>org.openjfx</groupId>
			<artifactId>javafx-controls</artifactId>
			<version>17.0.2</version>
		</dependency>
		<!-- jdk-17 添加 javax.annotation 依赖 -->
		<dependency>
			<groupId>javax.annotation</groupId>
			<artifactId>javax.annotation-api</artifactId>
			<version>1.3.2</version>
		</dependency>
		<!-- jdk-17 添加 persistence 依赖 -->
		<dependency>
			<groupId>javax.persistence</groupId>
			<artifactId>javax.persistence-api</artifactId>
			<version>2.2</version>
		</dependency>
		<!-- jdk-17 添加 persistence 依赖 -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>4.0.1</version>
			<scope>provided</scope>
		</dependency>
		<!-- jdk-17 添加 mysql 依赖(按需增加)<
升级Spring Boot项目Java 1.8Java 11或更高版本通常涉及几个步骤,因为Spring Boot默认依赖于最低JDK版本。以下是迁移过程的一般概述: 1. **确认兼容性**: - 首先,检查你当前的Spring Boot版本是否支持所选的新JDK版本Spring Boot 2.0及以后的版本默认支持至少Java 8,但某些高级特性和功能可能要求更高的版本。 2. **更新pom.xml**: - 在`<properties>`标签内,更新`maven.compiler.source`和`maven.compiler.target`属性,指定新版本Java(如`<maven.compiler.source>11</maven.compiler.source>` 和 `<maven.compiler.target>11</maven.compiler.target>`)。 ```xml <properties> <java.version>11</java.version> </properties> ``` 3. **处理依赖**: - 如果你的应用使用了不兼容的第三方库,可能需要更新这些库到支持新JDK版本。查看它们的文档,确保它们已经发布了对应版本的支持。 4. **编译问题修复**: - 在构建过程中可能会出现编译错误,这可能是由于API更改、移除或新的语法引入。仔细阅读编译错误信息,修改代码以适应新的Java规范。 5. **运行时配置**: - 如果应用中有使用旧版Java特有的类或API,请确保已正确迁移到新版本的等效类。例如,Java 9+引入模块化系统,你可能需要调整启动类的模块路径设置。 6. **测试**: - 全面测试应用程序,包括单元测试和集成测试,确保所有功能都能正常工作在新版本JDK上。 7. **发布部署**: - 当测试通过后,你可以部署到支持新JDK的服务器环境中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我OldFe

一分也是鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值