【问题标题】:Packaging Android AAR that has dependencies打包具有依赖项的 Android AAR
【发布时间】:2015-01-11 17:34:42
【问题描述】:

我想将我的库打包为 aar。

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

它还依赖于我编写的另一个库(称为“库 B”)。

我有两个问题:

  1. 使用我的库的每个人是否都需要根据库的依赖项(通用图像加载器、ORMLite、guava...)添加依赖项
  2. 我是否需要为“库 B”创建单独的 aar,并让我的 lib 的用户对其有单独的依赖项?

【问题讨论】:

    标签: android android-gradle-plugin aar


    【解决方案1】:

    会用我的库的每个人都需要根据库的依赖(通用图片加载器、ORMLite、guava...)添加依赖吗

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

    我是否需要为“库 B”创建单独的 aar

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

    并让我的 lib 的用户对其有单独的依赖项?

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

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      一句话:@aar 与默认的传递库冲突

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-02
        • 2015-11-11
        • 1970-01-01
        • 2017-05-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多