代码之家  ›  专栏  ›  技术社区  ›  Siddharth

Gradle 4.4和4.6不使用依赖项目的依赖项

  •  0
  • Siddharth  · 技术社区  · 7 年前

    我有两个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.* 进口。

    在我将gradle升级到4.4之后,我必须复制所有需要的 implementation 从项目A到项目B。我缺少什么?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Siddharth    7 年前

    2个答案发布在gradle问题上 here

    1.

    这正是它应该做的。这就是使用java库插件时api和实现依赖关系之间的区别:

    implementation 依赖关系是“内部的”,因此不要泄漏给下游消费者 api 另一方面,依赖关系是通过传递方式公开的,因为它们参与API表面 所以要么你需要添加一个 实施 依赖关系,解释您也需要依赖关系,或者它们应该使用api。我们无法为您自动确定。

    2.

    正如名字所说, 实施 依赖关系是实现细节,下游项目无法根据其进行编译。如果依赖关系应该是 api ,您应该使用 api 配置