项目:这里使用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兼容版本
- SpringBoot框架要升级到JDK17兼容版本
- 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>