Gradle 4.4 和 4.6 不使用依赖项目的依赖
Gradle 4.4 and 4.6 do not use dependencies from dependent projects
我有 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。我错过了什么?
2 个回答发布在 gradle 个问题上 here。
1
这正是它应该做的。这就是使用 java-library 插件时 api 和实现依赖项之间的区别:
implementation
依赖项是 "internal",所以不要泄露给下游消费者 api
另一方面,依赖项是传递性暴露的,因为它们参与了 API表面
因此,要么您需要添加对 A 的显式 implementation
依赖项,以说明您也需要这些依赖项,要么他们应该使用 api。我们无法自动为您确定。
2
顾名思义,implementation
依赖项是实现细节,不可用于下游项目编译。如果依赖项应该是你的 api
的一部分,你应该使用 api
配置
我有 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。我错过了什么?
2 个回答发布在 gradle 个问题上 here。
1
这正是它应该做的。这就是使用 java-library 插件时 api 和实现依赖项之间的区别:
implementation
依赖项是 "internal",所以不要泄露给下游消费者 api
另一方面,依赖项是传递性暴露的,因为它们参与了 API表面
因此,要么您需要添加对 A 的显式 implementation
依赖项,以说明您也需要这些依赖项,要么他们应该使用 api。我们无法自动为您确定。
2
顾名思义,implementation
依赖项是实现细节,不可用于下游项目编译。如果依赖项应该是你的 api
的一部分,你应该使用 api
配置