JDK8 升级至JDK19

优质博文IT-BLOG-CN

目前部分项目使用JDK8,部分项目使用JDK19因此,环境变量中还是保持JDK8,只需要下载JDK19免安装版本,通过配置IDEA就可以完成本地开发。

一、IDEA 环境设置

【1】通过快捷键CTRL + SHIFT + ALT + S或者File->Project Structure...设置SDKLanguage level,不存在JDK19时可通过Edit添加

【2】设置下方的Modules中的Sources模块和Dependencies模块


【3】设置下方的Platform Setting中的SDKs模块

【4】设置File->Settings...中的Build,Excepotion,Deployment下的Builder Tools->Maven->Runner模块
【5】设置File->Settings...中的Build,Excepotion,Deployment下的Compiler->Java Compiler模块
【6】如果使用了Tomcat点击Edit Configurations...后,设置JRE模块


【7】设置完成后通过Maven插件进行编译,因为通过控制台执行mvn命令时使用的是本地环境变量中配置的JDK版本,而Maven插件使用的是IDEA中配置的JDK版本。

二、POM依赖修改

在项目父模块的pom.xml中添加如下plugin

xml 复制代码
<properties>
        <maven.compiler.plugin.version>3.10.1</maven.compiler.plugin.version>
        <java.version>19</java.version>
</properties>
<build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven.compiler.plugin.version}</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <compilerArgument>--enable-preview</compilerArgument>
                        <compilerVersion>${java.version}</compilerVersion>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.12.4</version>
                    <configuration>
                        <argLine>
                            --add-opens java.base/java.lang=ALL-UNNAMED
                            --add-opens java.base/java.lang.reflect=ALL-UNNAMED
                            --add-opens java.base/sun.reflect.annotation=ALL-UNNAMED
                            --add-opens java.base/java.math=ALL-UNNAMED
                            --add-opens java.base/java.util=ALL-UNNAMED
                            --add-opens java.base/sun.util.calendar=ALL-UNNAMED
                            --add-opens java.base/java.io=ALL-UNNAMED
                            --add-opens java.base/java.net=ALL-UNNAMED
                            --add-opens java.xml/com.sun.org.apache.xerces.internal.jaxp.datatype=ALL-UNNAMED
                        </argLine>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.3.1</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

后面遇到最多的就是项目包的冲突问题,依次解决就好

相关推荐
子兮曰4 分钟前
Agency-Agents 深度解析:400+ AI 专家的"梦之队"如何重塑开发工作流
前端·后端·vibecoding
用户8356290780511 小时前
Python 实现 PDF 文件加密与解密方法
后端·python
小满zs1 小时前
Go语言第二章(小无相功)
后端·go
用户8356290780511 小时前
使用 Python 冻结与拆分 Excel 窗格教程
后端·python
karry_k1 小时前
MyBatis批量insert-select踩坑:useGeneratedKeys=true 可能让PostgreSQL返回大量插入结果
java·后端
妙码生花1 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十九):点选验证码代码逐行目检
前端·后端·go
贰先生1 小时前
Xiuno BBS X版 用户封禁系统
后端
karry_k1 小时前
PostgreSQL 在 MyBatis 中执行正常 SQL 失效:一次 DELETE USING 踩坑记录
java·后端
ServBay2 小时前
不会写代码也能建站?AI 时代,非技术创始人如何从零搭建自己的 Web 项目
后端·mcp
Moladev2 小时前
如何在 Electron 中接入 OpenAI 兼容的大模型 API:Snaptium 的主进程代理实践
后端