【问题标题】:How to upload local library (aar) as part of dependency to Bintray如何将本地库(aar)作为依赖项的一部分上传到 Bintray
【发布时间】:2016-07-01 08:11:41
【问题描述】:

我有 3 个传递依赖的项目要从 gradle 上传到 bintray,项目 1 和 2 是 jar,而项目 3 是使用另一个我们无法放入公共存储库的本地 aar 的 aar。

我已将项目 1 和 2 上传到 bintray,但我不知道如何进行第三个项目。 我可以选择将第三个库提供给我们的客户以包含在项目中,但我无法推送到 bintray,因为第三个项目依赖于这个库。

有没有办法将它推送到bintray而不添加第三个项目作为依赖项,而项目请求第三方库。

【问题讨论】:

  • 您可以在将其添加为依赖项时使用provided 关键字而不是compile,然后将aar 作为文件提供给您的客户,同时确保该库是第三个项目所需的依赖项。
  • 感谢 Radix,您的建议很有效

标签: android gradle bintray


【解决方案1】:

Bintray 不仅限于 OSS(甚至公共)工件。您可以使用您的私有 aar 在 Bintray 上拥有一个私有存储库。

关于依赖于私有 aar 的公共 aar 以及是否可以删除依赖关系,它归结为一个问题,对私有 aar 的依赖真的是强制性的吗?如果私有 aar 不在类路径中,事情是否会因 NoClassDefFound 错误而中断?如果是,答案是否定的——你不能在没有依赖的情况下分发公共 aar。如果它不是真的强制,那么您需要编辑公共 aar 的元数据,删除依赖关系,然后您就可以开始了。

【讨论】:

    【解决方案2】:

    按照 Radix 的建议,我能够将第三个项目推送到 bintray,我从 compile 更改为 provided 并更改了一些配置

      `configurations {
          provided
       }
       sourceSets {
         main { compileClasspath += configurations.provided }
       }
       dependencies {
         provided '...'
       }`
    

    并且用户可以轻松地从存储库中提取。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-03
      • 2016-08-23
      • 2020-06-22
      • 2016-01-06
      相关资源
      最近更新 更多