一篇文章快速解决spring-boot-maven-plugin缺少版本号打包失败问题

本文介绍了在使用SpringBootMaven插件时遇到的包打包错误,原因是Java版本不兼容。提供了升级Java版本和调整Maven配置两种解决方案,包括指定插件版本和使用dependencyManagement元素来确保一致性。
摘要由CSDN通过智能技术生成

一、package打包报错

错误信息
[WARNING] Error injecting: org.springframework.boot.maven.RepackageMojo
java.lang.TypeNotPresentException: Type org.springframework.boot.maven.RepackageMojo not present
Caused by: java.lang.UnsupportedClassVersionError: org/springframework/boot/maven/RepackageMojo has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
在这里插入图片描述

二、问题解决

错误原因:
spring-boot-maven-pluginb不写版本号的话,Maven 会使用最新的版本,这个错误是使用的 Java 版本低于 Spring Boot Maven 插件编译时使用的 Java 版本。插件需要 Java 17(class file version 61),但使用的 Java 版本仅支持到 Java 8(class file version 52)。
解决方案:

  1. 升级 Java 版本(繁琐不打算采用)
下载并安装 Java 17 或更高版本。
将 JAVA_HOME 环境变量设置为新的 Java 安装目录。
重启 IDE 或命令行窗口以使更改生效。
  1. 调整 Maven 配置(不升级 Java版本)
在 pom.xml 文件中指定插件的编译版本:
不写版本号,Maven 会默认使用最新的版本。

例如,要使用 Spring Boot 2.4.3 版本,您可以将 spring-boot-maven-plugin 插件的 version 属性设置为 2.4.3:

<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
	<version>2.4.3</version>
</plugin>

在这里插入图片描述
再执行package打包成功

还可以使用 Maven 的 dependencyManagement 元素来指定依赖项的版本。例如,要指定 Spring Boot 2.6.4 版本,您可以将以下内容添加到 pom.xml 文件中:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.6.4</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

这样,Maven 在解析依赖项时将使用 dependencyManagement 元素中指定的版本。
再执行package打包成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值