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

如何在Gradle中从指定依赖项排除特定包?

问题原因

你之前的配置不生效是因为Gradle的exclude语法中,module参数对应的是依赖构件的名称,而非Jar包内部的Java包路径,直接填写包名无法匹配到要排除的内容。

可行实现方案

分两种场景适配:

场景1:要排除的com.ibm.cloud.sdk.core.http包归属独立依赖构件

该包通常属于com.ibm.cloud:ibm-cloud-sdk-core公共依赖,此时直接排除整个对应构件即可,写法如下:

implementation (group: 'com.ibm.cloud', name: 'ibmcloudsql-jdbc', version: '2.5.34') {
    exclude group: 'com.ibm.cloud', module: 'ibm-cloud-sdk-core'
}

配置完成后可执行./gradlew dependencies命令查看依赖树,确认该构件已被排除。

场景2:目标包直接内嵌在ibmcloudsql-jdbc Jar中,或仅需排除该包无需排除整个sdk-core构件

此时需要借助ShadowJar插件在打包阶段过滤指定包,操作步骤如下:

  1. 引入ShadowJar插件
plugins {
    id 'com.github.johnrengelman.shadow' version '7.1.2' // 可根据你的Gradle版本选择匹配的插件版本
    id 'java'
}
  1. 配置打包过滤规则
shadowJar {
    dependencies {
        exclude(dependency('com.ibm.cloud:ibm-cloud-sdk-core')) {
            exclude 'com/ibm/cloud/sdk/core/http/**'
        }
    }
    // 若需要将shadowJar作为项目默认构建产物,可添加以下配置
    // jar.enabled = false
}

配置完成后执行./gradlew shadowJar命令打包,解压生成的Jar包即可验证指定包已被移除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:36:01