我可以更容易地向您展示,但长话短说。
当我在gradle文件中使用实现时,将我的THIRD依赖项添加到我的SECOND库时,由于某种原因,我无法实现接口。使用api时工作得很好。
此外,我们通过手动导入aar和pom文件来添加它。
项目级别Gradle for SECOND
allprojects {
repositories {
google()
jcenter()
maven { url "$projectDir/../THIRD" }
}
}
实际允许访问接口的唯一方法是使用API api('com.THIRD。@ aar')
这与预期完全一样:在编译库使用期间,库的implementation
依赖项的声明不可见,并且仅在运行时可用。
相反,在编译库使用期间,api
依赖关系也是可见的。
如果您不希望库用户从依赖项中查看声明,则应该只使用implementation
配置,如果您希望用户从依赖项实现接口,则肯定不是这种情况。
见:Gradle dependency configuration: implementation vs api vs runtimeonly vs compileonly