首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当在Gradle docker镜像中运行时,如何避免Gradle wrapper下载发行版?

当在Gradle docker镜像中运行时,如何避免Gradle wrapper下载发行版?
EN

Stack Overflow用户
提问于 2019-09-25 18:39:51
回答 1查看 1.5K关注 0票数 4

我的项目是用gradlew构建的。Gradle CI使用官方GitLab镜像在docker runner中构建项目(请参阅https://hub.docker.com/_/gradle)。

现在,即使Gradle已经安装在cointainer中,包装器仍然会每次都下载发行版。这构成了构建时间的大部分。

我如何“告诉”包装器已经安装的发行版,这样它就不会重新下载它(当然,假设版本匹配)?

当然,另一种选择是在CI中使用gradle而不是gradlew,并依靠docker镜像来获得正确的发行版,但如果可能的话,我希望避免这种情况,因为那样我就必须手动保持.gitlab-ci.yml和包装器配置的同步。

EN

回答 1

Stack Overflow用户

发布于 2019-09-25 20:38:12

我认为您不能指示包装器使用手动安装的Gradle的本地版本。

我能想到的避免在每次构建时都下载发行版的唯一方法是缓存Gradle主文件夹(例如/ home / Gradle /.gradle),这不会涉及升级gradle时的额外步骤。这应该是可能的,即使它驻留在Docker容器中。

我不知道GitLab如何支持缓存的细节,但可能只有当缓存存储在本地时才有意义(或者存储在同一台计算机上,或者存储在具有高网络带宽的缓存服务器中)。如果每次构建时都必须从S3存储桶中上传和下载它,那么这可能会花费与从services.gradle.org下载一样多的时间。但是如果你能做到这一点,你不仅可以缓存Gradle发行版,还可以缓存构建依赖项,这应该会进一步加快构建速度。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58096540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档