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

news2024/10/12 19:27:31

项目:这里使用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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2208601.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎么进行智能配音?一文告诉你

如何给文字智能配音呢&#xff1f;将文字转化为生动的语音&#xff0c;是提升内容吸引力的有效方式。 无论是制作视频、音频课程还是电子读物&#xff0c;合适的配音都能让信息传递更加高效。 如果你正寻找简单易用的方法来给文字添加配音&#xff0c;这里有几款智能配音软件…

0基础能不能转行做网络安全?

0基础能不能转行做网络安全&#xff1f;网络安全人才发展路线 最近有同学在后台留言&#xff0c;0基础怎么学网络安全&#xff1f;0基础可以转行做网络安全吗&#xff1f;以前也碰到过类似的问题&#xff0c;想了想&#xff0c;今天简单写一下。 我的回答是先了解&#xff0c…

Java对接ModbusRTU协议案例测试(相关代码及调试工具使用)

目的 在无设备的情况下&#xff0c;电脑搭建虚拟环境&#xff0c;进行代码编写以及测试 准备工作 一.测试工具 1.模拟虚拟串口工具&#xff0c;modbus RTU使用一问一答模式进行数据交互。 本文内容&#xff1a;模拟主站从站发送读取数据 2.个人设置&#xff1a;COM10为主站&am…

simulink分段函数

两段函数 20<v<60为真时&#xff0c;输出0.8 20<v<60为假时&#xff0c;即v<20或v>60时&#xff0c;输出0v>20时&#xff0c;输出0.8 v<20时&#xff0c;输出0 n段函数 n-1个switch模块

d3dcompiler_43.dll 文件的缺失常见方法分析,一键修复d3dcompiler_43.dll

在使用电脑的过程中&#xff0c;d3dcompiler_43.dll 文件的缺失是一个常见的技术挑战&#xff0c;这一问题通常会影响到基于Direct3D技术的应用程序的正常运行&#xff0c;可能导致程序启动失败或运行错误。d3dcompiler_43.dll 是DirectX组件的一部分&#xff0c;专责于编译用于…

CLIP图文多模态模型onnxruntime和tensorrt推理

首先下载github项目&#xff1a;https://github.com/Lednik7/CLIP-ONNX 修改clip_onnx/utils.py第61行opset_version12为opset_version15 , 运行测试脚本&#xff1a; import clip from PIL import Image import numpy as np# ONNX不支持CUDA model, preprocess clip.load(&q…

FFmpeg的简单使用【Windows】--- 视频倒叙播放

实现功能 点击【选择文件】按钮可以选择视频&#xff0c;当点击【开始处理】按钮之后&#xff0c;会先将视频上传到服务器&#xff0c;然后开始进行视频倒叙播放的处理&#xff0c;当视频处理完毕之后会将输出的文件路径返回&#xff0c;同时在页面中将处理好的视频展示出来。…

SpringBoot Data JPA基本使用

一、项目起步 1.1 pom配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency><dependency><groupId>org.springframework.boot</groupId><…

基于ssm的美妆分享网站的设计与实现

文未可获取一份本项目的java源码和数据库参考。 经济的快速发展&#xff0c;人均可支配收入提高&#xff0c;多数年轻人化妆理念都已经改变。在化妆品消费渗透率不断提升、核心化妆人口持续扩散因素的多重影响下&#xff0c;化妆品行业持续高速增长&#xff0c;但是我们对美妆的…

C++题 十进制转二进制

文章目录 1. 使用C20 std::format2. 使用 std::bitset 类3. 手动实现十进制到二进制的转换反过来&#xff0c;手动二进制到十进制 VisualStudio2022使用C&#xff0c;进行十进制到二进制的转换&#xff0c;常见的实现方式 1. 使用C20 std::format 需要将VisualStudio默认的标准…

信息学奥赛复赛复习16-CSP-J2022-01乘方-循环特判、pow函数、快速幂

PDF文档回复:20241012 此前解析题&#xff0c;P8813 [CSP-J 2022] 乘方&#xff0c;给出了循环的解题思路&#xff0c;当时在洛谷提交是通过的&#xff0c;后台收到留言&#xff0c;a1,b1e9会炸吧&#xff1f;&#xff0c;确实啊整除要求1s内循环次数最大可以到10^7,现在测试数…

微信自动化工具,让多微管理更轻松更高效!

对于多个微信账号的管理&#xff0c;往往会让人感到繁琐和耗时。 这时&#xff0c;通过个微管理系统实现微信自动化设置&#xff0c;将大大提升我们的管理效率。 1、批量自动加好友 只需将客户号码一次性导入系统&#xff0c;设置好加好友规则&#xff0c;系统便会自动发送加…

PS文件保存后突然消失?别急,这里有7种解决方案!

咨询&#xff1a;“我刚做完的PS文件&#xff0c;保存得好好的&#xff0c;怎么就突然消失了呢&#xff1f;连回收站里都没有&#xff0c;这可怎么办才好。” 面对PS&#xff08;Photoshop&#xff09;文件在保存后突然消失的情况&#xff0c;许多设计师和图像处理爱好者可能会…

List的实现类

1.ArrayList&#xff08;数组&#xff09; &#xff08;1&#xff09;代码 新建学生类&#xff1a; package com.collection;public class Student {private String name;private int age;//添加构造方法 都是使用altenter快捷键public Student() {this.name name;this.age…

OCR经典神经网络(二)文本检测算法DBNet算法原理及其在icdar15数据集上的应用

OCR经典神经网络(二)文本检测算法DBNet算法原理及其在icdar15数据集上的应用 场景文本检测任务&#xff0c;一直以来是OCR整个任务中最为重要的一环。虽然有一些相关工作是端对端的&#xff0c;但是从工业界来看&#xff0c;相关落地应用较为困难。因此&#xff0c;两阶段的OC…

RUM性能优化之图片加载

作者&#xff1a;三石 在现代Web开发中&#xff0c;图片作为内容表达的核心元素&#xff0c;其加载效率直接影响到页面的整体性能和用户体验。随着高清大图和动态图像的普及&#xff0c;优化图片加载变得尤为重要。RUM作为一种主动监测技术&#xff0c;能够帮助开发者从真实用户…

【Linux-基础IO】软硬链接+动静态库

一、软硬链接 见一见 软连接 硬连接 通过观察我们发现以下几点&#xff1a; 1.ll - i后&#xff0c;软连接形成的文件有指向&#xff0c;并且软连接的Inode编号与对应文件的Inode编号不一样 2.ll - i后&#xff0c;硬连接形成的文件与对应的文件Inode编号一样 3.软连接…

贪心+dfs,CF 1975D - Paint the Tree

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1975D - Paint the Tree 二、解题报告 1、思路分析 我们从树中一点出发&…

【uni-app】HBuilderX安装uni-ui组件

目录 1、官网找到入口 2、登录帐号 3、打开HuilderX 4、选择要应用的项目 5、查看是否安装完成 6、按需安装 7、安装完毕要重启 8、应用 前言&#xff1a;uniapp项目使用uni-ui组件方式很多&#xff0c;有npm安装等&#xff0c;或直接创建uni-ui项目&#xff0c;使用un…

汽车免拆诊断案例 | 2013款宝马116i车偶尔加速不良

故障现象  一辆2013款宝马116i车&#xff0c;搭载N13B16A 发动机&#xff0c;累计行驶里程约为12.1万km。车主反映&#xff0c;该车行驶中偶尔加速无反应&#xff0c;且发动机故障灯异常点亮。 故障诊断 接车后试车&#xff0c;故障现象无法再现。用故障检测仪检测&#xff…