一、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打包成功

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐