You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决rewrite-maven-plugin 5.2.1执行时的Java版本兼容错误?

解决rewrite-maven-plugin 5.2.1的UnsupportedClassVersionError错误

错误原因

报错核心信息:

java.lang.UnsupportedClassVersionError: com/github/benmanes/caffeine/cache/Caffeine has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

  • Class文件版本55.0对应Java 11,52.0对应Java 8
  • 插件依赖的Caffeine缓存库是用Java 11编译的,但当前运行Maven的JRE是Java 8,版本不兼容导致报错

解决方案

1. 升级JRE到Java 11或更高版本

这是最彻底的解决方式:

  • 检查当前JDK版本:执行 java -version 确认当前运行环境是Java 8
  • 安装Java 11或更高版本(如Java 17 LTS)
  • 配置环境变量:将JAVA_HOME指向新安装的JDK,确保PATH优先级中包含新JDK的bin目录
  • 验证版本:重新执行 java -version 确认版本为11+后,再运行Maven命令

2. 降级插件到兼容Java 8的版本

如果无法升级JDK,可以选择插件的旧版本:

  • rewrite-maven-plugin 5.x系列开始要求Java 11,因此需要降级到4.x版本(比如4.45.0,是支持Java 8的最新稳定版之一)
  • 修改项目pom.xml中的插件配置:
    <plugin>
        <groupId>org.openrewrite.maven</groupId>
        <artifactId>rewrite-maven-plugin</artifactId>
        <version>4.45.0</version>
        <!-- 保留原有的configuration配置 -->
    </plugin>
    
  • 清理并重新构建:执行 mvn clean install -U 刷新依赖

3. 强制插件使用Java 11运行(项目主体仍用Java 8)

如果项目主体必须基于Java 8,但要使用新版插件,可以让插件单独用Java 11执行:

  • 在pom.xml的插件配置中开启fork模式,并指定Java 11的执行路径:
    <plugin>
        <groupId>org.openrewrite.maven</groupId>
        <artifactId>rewrite-maven-plugin</artifactId>
        <version>5.2.1</version>
        <configuration>
            <fork>true</fork>
            <executable>/usr/lib/jvm/java-11-openjdk/bin/java</executable> <!-- 替换为你的Java11路径 -->
            <!-- 原有的其他配置 -->
        </configuration>
    </plugin>
    

内容的提问来源于stack exchange,提问作者Daniel Tamang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 13:42:24