问题与处理策略
问题描述
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.5</version>
<relativePath/>
</parent>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.1.RELEASE</version>
<configuration>
<fork>true</fork>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
</plugins>
<finalName>${project.artifactId}</finalName>
</build>
- 在 Java Spring Boot 项目中,使用上述配置,打包报如下错误
Unsupported class file major version 61
# 翻译
不支持的类文件主版本号 61
问题描述
-
Spring Boot 3.0.5
需要 Java 17,spring-boot-maven-plugin 2.1.1
版本过低,无法正确处理 Java 17 的类文件格式 -
其中,类文件主版本号 61 对应 Java 17,Java 各版本对应的类文件主版本号见下表
Java 版本 | 类文件主版本号 |
---|---|
Java 8 | 52 |
Java 11 | 55 |
Java 17 | 61 |
Java 21 | 65 |
处理策略
- 升级
spring-boot-maven-plugin
与 Spring Boot 主版本一致
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>3.0.5</version>