使用实施项目时,可传递引用无法正常使用

时间:2018-12-14 15:31:15

标签: gradle android-gradle build.gradle

我有一个Core项目,该项目与其他库有依赖关系。

Core build.gradle
    dependencies {
        implementation 'com.jakewharton:butterknife:9.0.0-rc2'
        annotationProcessor  'com.jakewharton:butterknife-compiler:9.0.0-rc2'
    }

我还有另一个引用Core的User项目。 在User项目中,确实引用了Core库:

User build.gradle
    dependencies {
        implementation 'com.example: core: 1.0'
    }

在User项目中,我可以参加黄油刀课程,但是当我在Core项目中进行引用时

User build.gradle
    dependecies{
        implementation project(":core")
    }

我无法访问黄油刀类(编译失败;有关详细信息,请参见编译器错误输出。)

有什么方法可以引用核心,并且能够使用核心引用的依赖项吗?

1 个答案:

答案 0 :(得分:2)

这是configurations的方式。

  

该插件公开了两个{{3}}(可用于声明依赖项):apiimplementationapi配置应用于声明由库API导出的依赖关系,而implementation配置应用于声明组件内部的依赖关系。

     

api配置中出现的依赖项将传递给库的使用者,并因此出现在使用者的编译类路径上。 另一方面,在implementation配置中找到的依赖项不会暴露给使用者,因此不会泄漏到使用者的编译类路径中。

要么将Butter Knife声明为api依赖项,要么在user/build.gradle中显式依赖它。