【问题标题】:Excluding a specific package from a dependency in Gradle从 Gradle 中的依赖项中排除特定包
【发布时间】:2021-12-25 10:21:47
【问题描述】:

我的一个项目中有一个依赖项

implementation (group: 'com.ibm.cloud', name: 'ibmcloudsql-jdbc', version: '2.5.34')

我想从这个 jar 中专门排除一个包,即

com.ibm.cloud.sdk.core.http

有办法吗?我已经尝试过了,但没有成功。

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

【问题讨论】:

    标签: java maven gradle gradlew


    【解决方案1】:

    您不能使用依赖管理来删除部分依赖 - 使用依赖管理,它要么是完整的依赖,要么是没有依赖(这不仅限于 gradle - 其他依赖管理器/构建系统,如 maven 或 ivy 也不会'没有这个功能)。

    exclude module 只能用于防止包含传递依赖项(即您需要依赖项com.xy:Acom.xy:A 声明它还需要com.xy:B - 使用exclude module 您可以防止包含com.xy:B )

    可以通过从 jar 本身手动删除包 com.ibm.cloud.sdk.core.http 并将修改后的 jar 文件添加到您的项目来创建您自己的依赖版本。

    【讨论】:

    • 嗨@Thomas Kläger 如何通过手动从 Jar 本身中删除包来创建自己的 jar 版本?有什么例子可以指点我吗?
    • @ChinmayDas 第一个问题一定是:你为什么需要它?该依赖项中的 jdbc 驱动程序需要来自 com.ibm.cloud.sdk.core.http 的类 - 如果没有它们,它将无法工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 2011-03-03
    • 2023-03-25
    • 1970-01-01
    • 2018-10-18
    相关资源
    最近更新 更多