Ubuntu 下 Maven 构建 Spring Boot 项目报错 release version 17 not supported 解决方案

一、问题背景

在 Ubuntu 服务器上使用 Maven 构建 Spring Boot 项目时,执行:

mvn clean package -DskipTests

出现如下错误:

ERROR Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.14.1:compile

Fatal error compiling: error: release version 17 not supported


二、问题原因分析

该问题并不是 Maven 本身的问题,而是 Java 环境配置不一致导致的。

通过检查发现:

java -version

javac -version

输出结果为:

openjdk version "21.0.7"

javac 17.0.18

说明当前系统环境存在问题:

工具 实际版本
java(运行时) 21
javac(编译器) 17

而 Maven 在构建项目时,会依赖运行时 Java 环境,并结合编译器执行编译操作。当两者版本不一致时,就可能出现:

release version 17 not supported


三、解决方案

统一 Java 运行环境与编译环境为 JDK 17

1. 查看系统可选 Java 版本

sudo update-alternatives --config java

sudo update-alternatives --config javac


2. 切换 Java 版本为 17

java 选项中选择:

/usr/lib/jvm/java-17-openjdk-amd64/bin/java

示例:

Selection Path


1 /usr/lib/jvm/java-17-openjdk-amd64/bin/java

输入:

1

完成切换。


3. 验证版本是否一致

java -version

javac -version

mvn -version

理想输出:

java 17

javac 17

Maven Java version: 17


4. 重新构建项目

mvn clean package -DskipTests

构建成功。

相关推荐
霸道流氓气质9 小时前
SpringBoot中通用工具类库(Utils)封装与使用实践
spring boot·后端·python
hkj880811 小时前
Ubuntu 切换java版本
java·linux·ubuntu
whyfail13 小时前
前端学 Spring Boot(2):一次点击,如何穿过整个后端?
前端·spring boot·后端
乔伊酱13 小时前
我被列表查询折磨了 7 年,直到有一天我发现它不是 ORM 的事!
spring boot·graphql
霸道流氓气质16 小时前
SpringBoot中基于 AES-GCM + KMS 密钥管理的数据加解密 Starter 实践
java·数据库·spring boot
乐观的Terry16 小时前
8、发布系统-完整流水线的核心
java·spring boot·spring·spring cloud
万亿少女的梦16817 小时前
基于Spring Boot的游戏交易管理系统设计与实现
java·spring boot·mysql·系统设计·交易管理
Q渡劫17 小时前
Redis 从安装到集成 Spring Boot 完整总结
spring boot
ruleslol19 小时前
SpringBoot26-@Configuration + @Component
spring boot
霸道流氓气质20 小时前
SpringBoot中使用JasperReports 报表引擎 — 介绍、原理与使用实践
java·spring boot·后端