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

Helidon Gradle项目shadowJar未包含依赖jar仅引入类报错如何解决

Helidon MP shadowJar打包异常解决方案

你遇到的WELD-001325报错本质是shadow插件默认将所有依赖解压为class文件合并时,多个依赖Jar中同名的CDI扩展SPI注册文件被覆盖,导致Weld无法识别到Helidon的服务扩展。
若要实现shadowJar打包时保留独立的依赖Jar包而非解压为类文件,可通过开启shadow插件的JarInJar模式实现,在build.gradle中添加如下配置:

shadowJar {
    // 开启Jar嵌套模式,所有依赖保留原Jar格式存入最终fat jar,不解压为class文件
    jarInJar = true
    manifest {
        attributes(
            // 固定为shadow提供的嵌套Jar启动类
            'Main-Class': 'com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar$JarInJarLauncher',
            // 替换为你自己项目的业务主类全限定名
            'Start-Class': 'com.ananth.osef.Main'
        )
    }
}

配置完成后执行gradlew clean shadowJar重新构建即可,构建生成的fat jar可直接通过java -jar 构建产物名称.jar运行。

如果你接受将依赖解压合并的打包方式,仅需解决WELD报错,也可通过合并SPI服务文件的方式实现,配置如下:

shadowJar {
    // 合并所有依赖Jar的SPI服务注册文件,避免CDI扩展配置被覆盖
    mergeServiceFiles()
    manifest {
        attributes 'Main-Class': 'com.ananth.osef.Main'
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:15:00