导入yudao-cloudjdk17版本的后端代码,改版本为21后编译爆错
2026/7/24 21:40:50 网站建设 项目流程

项目场景:

提示:为了改造项目决定用开源代码进行改造,适配jdk21:
导入yudao-cloudjdk17版本的后端代码,改版本为21后编译爆错,所有涉及到jdk版本的地方都改为了21

问题描述

导入yudao-cloudjdk17版本的后端代码,改版本为21后编译爆错

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.14.0:compile (default-compile) on project yudao-common: Fatal error compiling: 错误: 无效的目标发行 版:1.21 -> [Help 1]


搜索全项目也没找到1.21

检查了jdk版本也是21

<maven.compiler.compilerVersion>${java.version}</maven.compiler.compilerVersion>

原因分析:

提示:这里填写问题的分析:

maven.compiler.compilerVersion 是一个已废弃的旧版参数,用于 Maven Compiler Plugin 2.x 时代。它的版本号格式是旧式的 1.x(如 1.5、1.6、1.8)。
当您设置 <maven.compiler.compilerVersion>21</maven.compiler.compilerVersion> 时,Maven Compiler Plugin 会自动在前面加上 1. 前缀,变成了 1.21


解决方案:

提示:这里填写该问题的具体解决方案:

打开根 pom.xml,找到 部分,删除 compilerVersion 这一行:

<properties><revision>2026.06-SNAPSHOT</revision><java.version>21</java.version><maven.compiler.source>${java.version}</maven.compiler.source><maven.compiler.target>${java.version}</maven.compiler.target><!-- ❌ 删除下面这行 --><!-- <maven.compiler.compilerVersion>${java.version}</maven.compiler.compilerVersion> --><maven.compiler.release>${java.version}</maven.compiler.release></properties>

修改后, 应该是这样:

<properties><revision>2026.06-SNAPSHOT</revision><java.version>21</java.version><maven.compiler.source>${java.version}</maven.compiler.source><maven.compiler.target>${java.version}</maven.compiler.target><maven.compiler.release>${java.version}</maven.compiler.release></properties>

在结尾新增了这个配置就可以正常编译了

知识补充:
mvn compile:只编译代码,不打包、不入本地库
mvn package:打包,产物在 target,不能给其他模块依赖
mvn install:打包 + 存入本地 Maven 仓库(多模块开发必用)
mvn clean install:先清理旧文件,再完整构建并安装到本地库(日常最常用)
mvn deploy:推送到远程私服

知识补充:
Profile 能配置哪些内容?
编译版本(source/target,你当前场景)
不同环境数据库配置(dev/test/prod)
切换私服仓库地址
按需引入 / 排除依赖
自定义打包参数、资源文件过滤

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询