在android中创建一个带依赖项的库

Dav*_*jan 10 dependencies android gradle android-studio android-gradle-plugin

我创建了一个库'LibA',它依赖于许多第三方库,如RecyclerView,EventBus等.当我试图将它作为aar包含在另一个项目中时,Library被成功包含但依赖性并未出现在aar中.

Q1如何在LibA中包含依赖项,以便当其他项目包含此库时,它不应该担心我的库的内部依赖性.

Q2 gradle如何管理库的依赖关系,它是一次性下载所有依赖项,还是首先检查主项目中已有的?

Q3当某人包含来自jcenter的库时,是否会带来所有依赖关系?

任何帮助将非常感谢.:)

Gab*_*tti 10

AAR文件不包含嵌套(或传递)的依赖关系,并且不具有其描述库所使用的依赖关系的POM文件.

这意味着,如果要使用flatDirrepo 导入aar文件,则还必须在项目中指定依赖项.

Q1如何在LibA中包含依赖项,以便当其他项目包含此库时,它不应该担心我的库的内部依赖性.

您应该使用maven存储库(您必须在私有或公共maven存储库中发布库),您将不会遇到相同的问题.
在这种情况下,gradle使用包含依赖项列表的pom文件下载依赖项.

Q2 gradle如何管理库的依赖关系,它是一次性下载所有依赖项,还是首先检查主项目中已有的?

Gradle为您处理依赖项.它不会两次或更多地添加相同的依赖项.

Q3当某人包含来自jcenter的库时,是否会带来所有依赖关系?

如前所述,在这种情况下,依赖项有一个pom文件,它描述了所有嵌套的依赖项.Gradle自动下载.