【问题标题】:How to download a aar file from a private gitlab repo via gradle如何通过 gradle 从私人 gitlab 存储库下载 aar 文件
【发布时间】:2018-05-15 04:32:30
【问题描述】:

我正在尝试通过gradle 从我的gitlab 存储库下载依赖库mylibrary.aar。我知道我们在 gradle 中没有任何闭包/方法来直接从 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 方法下载的文件似乎已损坏/未正确完成下载过程。不知道出了什么问题。该库未编译,并且无法解析依赖项。当我尝试提取aar 时,它会再次提取到我的mac 中的cgpz 文件。不过我还没有在Windows 中尝试过。

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

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

非常感谢您对此的任何帮助。

注意:我不能使用本地构建的依赖,因为我所有的库都在不同的 repo 上,并且项目要求相同。此外,代码不能发布在 github 上,这就是我没有选择 jitpack 的原因

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

【问题讨论】:

标签: android gradle ant gitlab aar


【解决方案1】:

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

神器OSS版本可在here下载

我选择了artifactory,因为它更简单,并且用户界面很棒。最重要的是,它不需要为此设置单独的 github 存储库,因为代码不能在组织外部共享。

设置完成后,您的库可以如下访问。

http://localhost:8081/artifactory.

提供了设置工件的简要说明here

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

我希望这会有所帮助。

【讨论】:

    【解决方案2】:

    像这个例子那样做:

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

    【讨论】:

    • 这仅在库托管在 jcenter 或至少一个本地 maven 存储库中时才有效。那不是我的问题。我的问题是如何从 gitlab 存储库中获取库。
    猜你喜欢
    • 2014-08-19
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    • 2017-08-17
    • 2021-06-08
    • 2014-08-04
    相关资源
    最近更新 更多