解决maven打包失败问题

作者 小秦同学 发布于 2024-09-27
预计阅读时间 2 分钟
字数总计约 612

报错:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project xxxx: Fatal error compiling: 错误: 不支持发行版本 17 -> [Help 1]

解决结论:安装 JDK 17,并在 VSCode 中做好相应配置(确保项目中使用的 JDK 版本一致)。

问题描述:

在尝试进行 Maven 相关操作或项目打包时,我执行了以下命令:

1
mvn clean package -Pprod -DskipTests

注:-Pprod 指使用生成的配置文件进行打包,-DskipTests 指只是打包而不进行测试

执行该命令后,报出下面的错误:
image-20240927201516397

我的springboto项目版本为3.3.4,项目java版本为17(JDK Runtime JDK: JavaSE-17)
maven版本为:Apache Maven 3.9.6 ,maven插件版本为3.8.1

最初我怀疑是 Maven 的问题,尝试更换多个版本的 Maven 插件,但问题依旧未解决。经过在线搜索,我发现没有有效的解决方案。最终,我注意到电脑的 Java 版本为 11.0.22,这与 Spring Boot 中配置的 Java 版本不一致,导致了错误。

问题原由:

在 Vscode 中, Springboot 项目开发选择使用的 JDK 可以不是自己电脑上已有的 JDK,当进行项目开发时 Springboot 能正常运行,但是进行 Maven 操作或者项目打包时,使用的是电脑上已有的 JDK 进行打包,项目中使用的 JDK 与电脑当中使用的 JDK 不一致,就会报错。

解决办法:

1、前往官网下载 JDK(项目中使用的 JDK 版本):
https://www.oracle.com/cn/java/technologies/downloads/#jdk17-windows

2、配置环境

2.1 新建变量,变量值为 JDK 安装路径

2.2 编辑变量,新增:%JAVA_HOME%\bin,把新的 JDK 17 上移,这样系统默认使用17,而不是使用 JDK 11。可在终端输入 java -version 看当前使用的版本。

3、修改 Vscode 配置。 ctrl+.,进入设置,搜索 jdk ,点击 在 setting.json 中编辑
添加配置

1
2
3
4
5
6
7
8
"maven.terminal.useJavaHome": true,
"java.jdt.ls.java.home": "C:/Program Files/Java/jdk-17", // 值为 JDK 安装路径
"maven.terminal.customEnv": [
{
"environmentVariable": "JAVA_HOME",
"value": "C:/Program Files/Java/jdk-17" // 值为 JDK 安装路径
}
],

4、如果 Vscode 终端显示版本没变,重开 Vscode 即可。重新执行打包命令,问题解决。

总结

在开发 Java 应用程序时,使用一致的 JDK 版本,这样可以减少兼容性问题和潜在错误。


如果您觉得这篇博客对您有所帮助,欢迎分享给更多人。如果您发现博客中使用的图片存在版权问题,请及时联系作者,我们将尽快处理并删除相关内容。感谢您的支持!