如何将本地库 (aar) 作为依赖项的一部分上传到 Bintray

How to upload local library (aar) as part of dependency to Bintray

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

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

在项目请求第三方库的情况下,有没有办法在不添加第三方项目依赖的情况下将其推送到bintray。

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

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

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

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

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