如何告诉Gradle在Continuous Integration模板系统中重用依赖项?

时间:2017-12-24 10:25:10

标签: android gradle android-gradle build.gradle gradle-dependencies

我们有一个项目模板,已清理,没有编译它只需要5mb的磁盘空间。在我们的持续集成系统中,正在为每个项目复制模板,之后,它会被脚本更改,该脚本使用每个项目的代码和项目属性差异来准备模板。一旦准备好,它就会被编译。

我们所有的项目都有相同的依赖关系。每次复制模板并准备成一个不同的项目时,再次下载相同的依赖项。今天,我们经历了一个非常罕见和危险的问题。我们所有的编译都开始失败,因为gradle无法下载依赖项:

> Could not resolve com.github.mobfox:MobFox-Android-SDK-Core:3.2.4.
> Could not get resource 'https://jitpack.io/com/github/mobfox/MobFox-Android-SDK-Core/3.2.4/MobFox-Android-SDK-Core-3.2.4.pom'.
> Could not GET 'https://jitpack.io/com/github/mobfox/MobFox-Android-SDK-Core/3.2.4/MobFox-Android-SDK-Core-3.2.4.pom'.
> Read timed out

正因为如此,我需要知道如何才能最终实现gradle下载所有依赖项的一次,而不是每次我复制模板并准备它作为另一个项目。当我将模板复制到新文件夹并重命名应用程序和其他一些项目时,Gradle正在gradle缓存目录中为它创建一个新的缓存文件夹。有没有办法告诉gradle每次编译应用程序时应该存储和搜索gradle依赖项的确切目录路由?

由于

1 个答案:

答案 0 :(得分:0)

可能你可以使用--offline和你可能用来在CI / CD上构建apk的gradlew命令

以下是详细信息。

Gradle在避免重新加载工件方面做得很好,但您可以将--offline传递给分级以防止在构建期间访问网络。如果它需要来自网络的东西,而不是尝试获取它,那么你的构建将会失败。