【问题标题】:How does Travis CI cache Gradle dependencies?Travis CI 如何缓存 Gradle 依赖项?
【发布时间】:2017-04-29 07:33:54
【问题描述】:
在Travis documentation about caching dependencies 中提到:
缓存的目的是使安装特定语言的依赖项变得容易和快速,因此与 Bundler、pip、Composer、npm、Gradle、Maven 等工具相关的所有内容都应该进入缓存。
快速安装但下载速度慢的大文件不会从缓存中受益,因为它们从缓存中下载所需的时间与从原始源下载一样长:
我在我的 Java 项目中使用 Gradle。
Gradle 缓存的似乎是那些 .jar 文件,它们应该属于“快速安装”类别。
所以我的问题是,如果 .jar 文件安装速度快但下载速度慢,为什么 Travis 建议缓存 Gradle 依赖项?
好处(就更短的构建时间而言)从何而来?
【问题讨论】:
标签:
caching
gradle
travis-ci
【解决方案1】:
这是个好问题。我不确定使用缓存的好处,因为我从未测量过 S3 的下载时间,但它可能更快。
At the end of the linked page他们解释道:
如果您将超过几百兆字节的档案存储在
缓存,您不太可能看到显着的速度提升。
他们似乎认为缓存大量小文件比单独下载要快。
适合此类别的 Gradle 文件可以快速安装和快速下载。
他们不建议像 1GB 的 Android 系统映像那样使用缓存来快速安装文件和缓慢下载。
在我看来,他们这样说是因为您损害了他们的 S3 配额(我不知道这项服务的条款),而在这种情况下对您的好处微不足道。