我有2个gradle项目A和B
在项目A中我有
dependencies {
ext {
support_library_version = '26.1.0'
}
implementation "com.payu.india:payu-sdk:4.4.1"
implementation "com.payu.magicretry:magicretry:1.0.4"
implementation "com.payu.custombrowser:payu-custom-browser:6.1.1"
implementation "com.android.support:appcompat-v7:${support_library_version}"
implementation "com.android.support:support-v4:${support_library_version}"
}
在项目B中我有
implementation project(':A')
由于某些原因,项目B报告无法找到所有com.payu.*
个导入的符号。
将gradle升级到4.4后,我不得不将所有需要的implementation
从项目A复制到项目B.我缺少什么?
答案 0 :(得分:0)
2个答案发布在gradle问题上here。
<强> 1 强>
这完全符合预期。这是使用java-library插件时api和实现依赖关系之间的区别:
implementation
依赖关系是“内部的”,因此不要泄漏给下游消费者api
依赖关系是可传递的,因为它们参与API表面
因此,您需要在A上添加明确的implementation
依赖项,以解释您是否也需要依赖项,或者它们应该使用api。我们无法自动为您确定。
<强> 2 强>
顾名思义,implementation
依赖项是实现细节,不能用于编译的下游项目。如果依赖项应该是api
的一部分,则应使用api
配置