我有两个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')
由于某些原因,project B reports无法找到所有项目的符号 com.payu.* 进口。
com.payu.*
在我将gradle升级到4.4之后,我必须复制所有需要的 implementation 从项目A到项目B。我缺少什么?
implementation
2个答案发布在gradle问题上 here 。
1.
这正是它应该做的。这就是使用java库插件时api和实现依赖关系之间的区别:
implementation 依赖关系是“内部的”,因此不要泄漏给下游消费者 api 另一方面,依赖关系是通过传递方式公开的,因为它们参与API表面 所以要么你需要添加一个 实施 依赖关系,解释您也需要依赖关系,或者它们应该使用api。我们无法为您自动确定。
api
实施
2.
正如名字所说, 实施 依赖关系是实现细节,下游项目无法根据其进行编译。如果依赖关系应该是 api ,您应该使用 api 配置