gradle 如何在android库中导出依赖项

ctehm74n  于 2023-03-03  发布在  Android
关注(0)|答案(1)|浏览(308)

自版本3.0.0起,Android Gradle插件允许您将模块的依赖项导出到其他模块。
因此,在我的android库模块中,我应该能够使用api <dependency declaration>声明一个依赖项,并在我的主应用程序项目中将该依赖项作为导出的传递依赖项访问,在主应用程序项目中,我已经将我的库模块声明为依赖项。
我还使用静态文件依赖关系。
例如:
我有一个类NeededEverywhere,它在自己的gradle模块everywhere-module中定义,该模块与我的库模块位于同一个项目中。

//library module's build.gradle:
dependencies {
    api project(':everywhere-module')
}

在我的应用的build. gradle(位于另一个Android Studio项目中)中,我声明了对库的依赖关系,* 但没有声明对everywhere-module的依赖关系 *。这意味着everywhere-module是导出的可传递依赖关系。

//app project's build.gradle
dependencies {
    implementation files("path/to/my/library/file.aar")
}

但是,我无法访问应用中的类NeededEverywhere
我哪里做错了?

odopli94

odopli941#

您正在直接引用AAR。
依赖性信息不在AAR中,就像依赖性信息不在JAR中一样。依赖性信息保存在工件存储库的元数据中,比如Maven风格存储库的POM文件。
因此,包含库模块的项目需要将其AAR发布到工件存储库。该存储库可以是您计算机的本地存储库(例如mavenLocal())。然后,需要依赖库模块的项目从存储库(而不是通过file())执行此操作。然后,Gradle可以从存储库获取传递依赖关系信息并加以利用。

相关问题