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

如何用shadowJar将依赖编译进Jar?解决类找不到报错

解决ClassNotFoundException: com.xef5000.vigilance.Vigilant的方法

你的问题核心是shadowJar任务未将vigilance、elementa等依赖正确打包进最终Jar,同时需确保代码引用与重定位配置一致,具体修复步骤如下:

  • 步骤1:确认依赖已正确引入
    检查build.gradle.kts的dependencies块,确保已添加vigilance、elementa、universalcraft的依赖声明,且scope为implementation(仅该scope的依赖会被shadowJar处理):

    dependencies {
        implementation("gg.essential:vigilance:对应版本号")
        implementation("gg.essential:elementa:对应版本号")
        implementation("gg.essential:universalcraft:对应版本号")
        implementation("org.spongepowered:mixin:对应版本号")
        // 其他项目依赖...
    }
    
  • 步骤2:修改shadowJar的依赖包含规则
    当前shadowJar配置仅包含了mixin依赖,未包含vigilance等核心依赖,需要补充这些依赖的include规则:

    tasks.shadowJar {
        archiveClassifier.set("") 
        relocate("gg.essential.vigilance", "com.xef5000.vigilance")
        relocate("gg.essential.elementa", "com.xef5000.elementa")
        relocate("gg.essential.universalcraft", "com.xef5000.universalcraft")
        
        dependencies {
            include(dependency("gg.essential:vigilance"))
            include(dependency("gg.essential:elementa"))
            include(dependency("gg.essential:universalcraft"))
            include(dependency("org.spongepowered:mixin"))
        }
    }
    
  • 步骤3:验证代码引用的包名
    确保代码中所有引用vigilance、elementa类的地方,使用的是重定位后的包名com.xef5000.vigilance.Vigilant,而非原始的gg.essential.vigilance.Vigilant——重定位后原始包名的类不会存在于最终Jar中。

  • 步骤4:重新构建并测试
    执行./gradlew shadowJar重新生成Jar文件,运行新生成的Jar即可解决类找不到的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 10:30:17