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

升级到Gradle7后传递依赖缺失,配置api未生效问题求助

问题根因

你遇到的问题根源是projectB的Maven发布配置错误,没有将项目依赖声明自动写入上传的POM文件:

  • 你当前的配置仅手动指定了上传jar包,生成的pom.xml中没有任何依赖节点,因此即便projectB用api声明了对projectC的依赖,其他项目依赖projectB时也无法识别到传递依赖,自然运行时会找不到projectC的类。
  • Gradle6阶段正常大概率是你当时使用的是多项目直接依赖(project(':projectB'))而非依赖maven仓库中发布的jar包,多项目依赖不需要读取POM就能识别传递依赖。

可行解决方案

第一步:修正projectB(以及projectC)的发布配置

将mavenJava发布块中的手动指定jar包逻辑替换为from components.java,该配置会自动生成包含完整依赖声明的POM文件,同时上传jar和POM到仓库:

publications {
    mavenJava(MavenPublication) {
        group = 'group-projectB'
        artifactId = 'artifact-projectB'
        // 替换原来的artifact(file(...))配置为下面这行即可
        from components.java
    }
}

projectC的发布配置也建议做同样修改,避免后续projectC新增依赖时出现同样的传递依赖丢失问题。

第二步:重新发布并清理缓存

  • 升级projectB的版本号(或者清空本地maven仓库、Gradle缓存中对应版本的projectB文件,避免加载旧的错误版本),重新发布到maven仓库。
  • 回到projectA刷新依赖,删除你手动添加的projectC依赖即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:15:08