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

Gradle库中反射调用外部包的依赖传递问题

问题解决方案

你的问题核心是依赖传递性缺失导致的:使用implementation声明本地jtds jar依赖时,该依赖仅在你的内部库编译和运行时可用,但不会传递给依赖这个库的其他项目,因此其他项目运行时找不到net.sourceforge.jtds.jdbc.Driver类。

快速修复:将依赖改为api

修改内部库的build.gradle依赖配置,把implementation替换为api:

dependencies {
    api files('libs/jtds-1.3.1.jar')
}

api关键字会将该依赖标记为可传递,当其他Gradle项目依赖你的内部库时,jtds jar会自动被引入到它们的类路径中,无需手动复制jar或修改构建文件。

更规范的方案:将本地jar发布到本地Maven仓库

如果需要长期维护这个内部库,建议把本地jtds jar发布到本地Maven仓库,用标准坐标管理依赖:

  1. 在内部库的build.gradle中添加安装到本地仓库的任务:
task installJtdsToLocalMaven(type: Upload) {
    configurations = [configurations.api]
    repositories {
        mavenInstaller {
            pom.groupId = 'net.sourceforge.jtds'
            pom.artifactId = 'jtds'
            pom.version = '1.3.1'
        }
    }
}
  1. 运行Gradle任务将jar安装到本地仓库:
./gradlew installJtdsToLocalMaven
  1. 修改内部库的依赖为标准Maven坐标:
dependencies {
    api 'net.sourceforge.jtds:jtds:1.3.1'
}

这种方式更符合Gradle依赖管理规范,后续其他项目依赖你的库时,Gradle会自动从本地仓库拉取jtds依赖,避免手动管理本地jar的复制问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:40:41