打包 Android 个具有依赖项的 AAR

Packaging Android AAR that has dependencies

我想将我的库打包成 aar。

该库有几个依赖项(通用图像加载器、ORMLite、番石榴...)

它还依赖于我编写的另一个库(称之为 'library B')。

我有 2 个问题:

  1. 大家会不会用到我的库需要根据库的依赖添加依赖(通用图片加载器,ORMLite,guava...)
  2. 我是否需要为 'library B' 创建一个单独的 aar,并让我的库的用户对它有一个单独的依赖项?

Will everyone who will use my library need to add dependencies according to the library's dependencies (universal image loader, ORMLite, guava...)

如果您将 AAR 作为工件分发到具有适当元数据(例如,Maven 样式的 POM 文件)的存储库中,则不会。元数据将指向您的依赖项,构建系统(例如 Gradle)将引入依赖项。

Do I need to create a separate aar for 'library B'

是的,否则没有人可以访问它,除非你删除它并将它的代码折叠到你的第一个库中。

and have users of my lib have a separate dependency for it?

有关设置依赖项的信息,请参见上文。

你不需要这样做,你只需要做下一个: 如果你 aar libray 有三十个依赖项: 你应该让其他人以这种方式使用你的 aar 库: 例如:

compile('com.android:com.android.download:1.3')

compile('com.android:com.android.download:1.3@aar'){
       transitive = true
}

如果您的 aar 库没有三十个依赖项:

compile('com.android:com.android.download:1.3@aar')

一句话:@aar与默认的transitive vault有冲突