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

如何用Gradle重定位Jar包?解决依赖冲突与版本报错

解决Gradle Shadow插件报Unsupported class file major version 65问题

问题概述

开发Java+Bazel项目时遭遇大量依赖冲突,计划通过Shade Jar(阴影包)方式解决,但Bazel不支持该操作,因此首次使用Gradle构建,基于ChatGPT生成了以下构建脚本:

plugins {
    id("java")
    id("com.github.johnrengelman.shadow") version "8.1.1"
}

repositories {
    mavenCentral()
    maven {
        url = uri("https://mvnrepository.com/artifact")
    }
}

dependencies {
    implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.18.0'
}

tasks.named('shadowJar', com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar) {
    relocate 'com.fasterxml.jackson', 'shaded.com.fasterxml.jackson'
}

使用Gradle 8.10.2运行时,触发如下报错:

java.lang.IllegalArgumentException: Unsupported class file major version 65
        at org.objectweb.asm.ClassReader.<init>(ClassReader.java:199)
        at org.objectweb.asm.ClassReader.<init>(ClassReader.java:180)
        at org.objectweb.asm.ClassReader.<init>(ClassReader.java:166)
        at org.objectweb.asm.ClassReader.<init>(ClassReader.java:287)

尝试谷歌搜索及ChatGPT提供的多种方案后均未解决问题,最终通过以下步骤完成修复:

最终解决方案

  1. 将JDK环境切换至OpenJDK 21
  2. 替换Shadow插件为原废弃仓库的继任插件com.gradleup.shadow

调整后的核心插件配置示例:

plugins {
    id("java")
    id("com.gradleup.shadow") version "8.3.0" // 建议使用最新兼容版本
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 12:16:16