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

时间:2018-05-15 04:32:30

标签: android gradle ant gitlab aar

我正在尝试通过mylibrary.aargitlab存储库下载依赖库gradle。我知道我们在gradle中没有任何闭包/方法可以直接从http网址获取文件。

因此我正在使用ant的getmethod从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. 除了aar之外,还有其他方法可以从gitlab服务器下载ant.get文件吗?
  3. 非常感谢任何帮助。

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

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

2 个答案:

答案 0 :(得分:0)

就像这个例子一样:

poll()

答案 1 :(得分:0)

我认为我没有直接解决问题的方法,因为"Command failed with error 28646: '$filter only supports an object as its argument'. The full response is { \"ok\" : 0.0, \"errmsg\" : \"$filter only supports an object as its argument\", \"code\" : 28646 }" 没有api。相反,我所做的是,使用gradle jfrog创建了我自己的maven存储库,并在那里托管了库,以便所有开发人员可以从内部工件中引用库。

可以从here

下载神器OSS版本

我之所以选择artifactory是因为它更简单,并且拥有出色的用户界面。最重要的是,它不需要为此目的设置单独的artifactory存储库,因为代码无法在组织外部共享。

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

http://localhost:8081/artifactory

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

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

我希望这会有所帮助。