Ubuntu环境下Java 21与Maven编译兼容性问题求助
问题排查与解决方案
核心原因
maven-compiler-plugin 3.11.0版本不支持Java 21,该版本插件最高仅适配到Java 17,必须升级插件版本才能兼容Java 21。
具体解决步骤
1. 升级maven-compiler-plugin版本
在pom.xml中找到插件配置块,将版本升级至3.12.0及以上(推荐3.13.0或Spring Boot适配版本):
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.13.0</version> <configuration> <release>21</release> </configuration> </plugin>
若项目基于Spring Boot父工程管理,只需确保Spring Boot版本为3.2.0及以上(Spring Boot 3.2+原生支持Java 21),父工程会自动引入适配的compiler插件版本,无需手动指定。
2. 验证预发布脚本的Maven环境
- 执行命令确认Maven绑定的Java版本为21:
mvn -v
- 检查脚本中
JAVA_HOME环境变量是否指向正确的Java 21安装路径:
echo $JAVA_HOME
3. 清理Maven缓存
执行以下命令清理本地仓库缓存,避免旧插件残留导致的问题:
mvn clean install -U
额外排查方向
- 检查项目子模块是否单独指定了maven-compiler-plugin版本,确保所有模块插件版本统一。
- 通过
update-alternatives --config java确认Ubuntu系统默认Java版本为21。
内容的提问来源于stack exchange,提问作者Gullian Van Der Walt
相关产品推荐
相关产品推荐

