0


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 依赖(按需增加)--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version><!-- 请根据需要修改为最新版本 --></dependency><!-- mybatisplus 升级版本《3.4.3.1=>3.5.7》--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.7</version></dependency>

3、修改代码
mybatisplus返回类型修改,修改成Long类型即可
在这里插入图片描述
4、启动
发现控制台已经是修改的版本,完成!!!
在这里插入图片描述

四、总结

1、首先是项目切换到JDK17
2、项目框架要与JDK版本兼容
3、依赖要与JDK版本兼容
4、不同版本的依赖代码有可能也会有小改动
基本就是这样子,我是一步步踩坑过来的,就是启动打包哪里报错就修改哪

pom.xml代码
<?xml version="1.0"encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.0</version><!-- jdk-17 切换版本 --><relativePath /><!-- lookup parent from repository --></parent><groupId>com.zj</groupId><artifactId>EasyMedia</artifactId><version>1.3.2</version><name>EasyMedia</name><description>一款简单的流媒体服务</description><properties><java.version>17</java.version></properties><dependencies><!-- jdk-17 添加 javafx 依赖 --><dependency><groupId>org.openjfx</groupId><artifactId>javafx-controls</artifactId><version>17.0.2</version></dependency><!-- 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 依赖 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version><!-- 请根据需要修改为最新版本 --></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency><!-- 全量引入 ,包含javacv、ffmpeg、opencv等 --><!-- <dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5.6</version></dependency> --><!-- 媒体只用到以下两个,javacv、ffmpeg --><dependency><groupId>org.bytedeco</groupId><artifactId>javacv</artifactId><version>1.5.6</version></dependency><!-- ffmpeg全平台引入 --><!-- <dependency><groupId>org.bytedeco</groupId><artifactId>ffmpeg-platform</artifactId><version>4.4-1.5.6</version></dependency> --><dependency><groupId>org.bytedeco</groupId><artifactId>ffmpeg</artifactId><version>4.4-1.5.6</version><classifier>windows-x86_64</classifier></dependency><dependency><groupId>org.bytedeco</groupId><artifactId>ffmpeg</artifactId><version>4.4-1.5.6</version><classifier>linux-x86_64</classifier></dependency><!-- 工具包 --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.21</version></dependency><!-- netty --><dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>4.1.59.Final</version></dependency><!-- h2驱动 --><dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope></dependency><!-- jpa --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><!-- mybatisplus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.7</version></dependency><!-- 云台控制sdk需要 --><dependency><groupId>com.jna</groupId><artifactId>jna</artifactId><version>1.0.0</version><scope>system</scope><systemPath>${project.basedir}/sdk/jna.jar</systemPath></dependency><dependency><groupId>com.examples</groupId><artifactId>examples</artifactId><version>1.0.0</version><scope>system</scope><systemPath>${project.basedir}/sdk/examples.jar</systemPath></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><includeSystemScope>true</includeSystemScope></configuration></plugin></plugins></build><!-- 为了加速下载需要在 pom 文件中复制如下信息 --><repositories><repository><id>aliyun</id><name>Nexus Snapshot Repository</name><url>https://maven.aliyun.com/repository/public</url><layout>default</layout><releases><enabled>true</enabled></releases><!-- snapshots默认是关闭的,需要开启  --><snapshots><enabled>true</enabled></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>aliyun</id><name>Nexus Snapshot Repository</name><url>https://maven.aliyun.com/repository/public</url><layout>default</layout><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></pluginRepository></pluginRepositories></project>
标签: spring boot 后端 java

本文转载自: https://blog.csdn.net/ALiangSev/article/details/142652976
版权归原作者 叫我OldFe 所有, 如有侵权,请联系我们删除。

“SpringBoot项目升级JDK版本(1.8 => 17)”的评论:

还没有评论