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

Gradle复合构建无法解析依赖库传递依赖问题如何解决

问题核心原因

你使用了Gradle的java-library插件定义库B,该插件对依赖作用域做了明确拆分:

  • implementation声明的依赖仅在库B内部的编译、运行类路径生效,不会传递到依赖B的上游项目的编译类路径,仅会进入上游项目的运行类路径
  • 只有api作用域声明的依赖才会同时暴露到上游项目的编译、运行类路径,实现传递依赖效果

你当前在库B中用implementation声明commons-lang3,所以项目A编译时无法访问该依赖的类,才会抛出包不存在的错误。

修复方案

方案1(推荐):修改库B的依赖作用域

将库B中需要对外暴露的公共依赖从implementation改为api即可,修改后库B的dependencies块如下:

dependencies {
    api 'org.apache.commons:commons-lang3:3.12.0'
    // 其他仅库B内部使用的依赖继续用implementation即可
}

该方案符合java-library插件的设计规范,公共依赖统一在库B维护,上游项目无需重复声明。

额外注意点

你贴出的库B配置中version = '0.1.0缺少闭合的单引号,属于语法错误,实际使用时请补全为version = '0.1.0',避免构建异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:24:04