如何通过 gradle 从私有 gitlab 仓库下载 aar 文件

How to download a aar file from a private gitlab repo via gradle

我正在尝试通过 gradle 从我的 gitlab 存储库下载依赖库 mylibrary.aar。我知道我们在 gradle 中没有任何 closures/methods 可以直接从 http url.

获取文件

因此我使用 ant 的 get 方法从 gitlab 下载库。

这是我在 gradle 文件中用来获取库的代码。

task downloadlib {

ant.get(src: 'https://my-git-link/mylibrary.aar', dest: 'libs', verbose: 'on')

}

dependencies {

compile(name: 'mylibrary', ext: 'aar')

}

问题:

我通过 ant 的 get 方法下载的文件似乎 corrupted/does 没有正确完成下载过程。不知道出了什么问题。库未编译,依赖项无法解析。当我尝试提取 aar 时,它再次提取到我的 mac.I 中的 cgpz 文件,但在 windows 中还没有尝试过。

但是,如果我手动下载相同的 aar 文件并在 libs 文件夹中引用它,它绝对可以正常工作。

  1. 知道为什么会这样吗?
  2. 除了 ant.get 之外,还有其他方法可以从 gitlab 服务器下载 aar 文件吗?

非常感谢任何帮助。

注意:我不能使用本地构建的依赖关系,因为我所有的库都在不同的回购协议上,并且项目要求要求 same.Also,代码不能发布在 github 中,这就是我的原因没有选择jitpack

jar 个文件也会出现同样的问题。

像这个例子那样做:

implementation 'com.quickblox:quickblox-android-sdk-core:2.5.2@aar'
implementation('com.quickblox:quickblox-android-sdk-chat:2.5.2@aar') {
    transitive = true
    }

我认为我没有直接解决问题的方法,因为 gradle 没有 api 可以解决这个问题。相反,我所做的是,使用 jfrogartifactory 创建了我自己的 Maven 存储库并将库托管在那里,以便所有开发人员都可以从内部工件中引用库。

神器OSS版本可以在here

下载

我选择了artifactory,因为它更简单,而且UI很棒。最重要的是,它不需要为此目的设置单独的 github 存储库,因为代码无法在组织外部共享。

设置后,您的库可以按如下方式访问。

http://localhost:8081/artifactory.

提供了关于设置人工制品的简要说明here

在库托管在您的 artifactory(可以位于网络中的任何位置)之后,您或您组织中的任何其他开发人员都可以使用 android 中的 maven 依赖管理器访问您的库。

希望对您有所帮助。