一、问题背景
在 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
构建成功。