我有一个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")
}
我无法访问黄油刀类(编译失败;有关详细信息,请参见编译器错误输出。)
有什么方法可以引用核心,并且能够使用核心引用的依赖项吗?
答案 0 :(得分:2)
这是configurations的方式。
该插件公开了两个{{3}}(可用于声明依赖项):
api
和implementation
。api
配置应用于声明由库API导出的依赖关系,而implementation
配置应用于声明组件内部的依赖关系。在
api
配置中出现的依赖项将传递给库的使用者,并因此出现在使用者的编译类路径上。 另一方面,在implementation
配置中找到的依赖项不会暴露给使用者,因此不会泄漏到使用者的编译类路径中。
要么将Butter Knife声明为api
依赖项,要么在user/build.gradle
中显式依赖它。