项目:这里使用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>
版权归原作者 叫我OldFe 所有, 如有侵权,请联系我们删除。