在Travis documentation about caching dependencies中,它提到:
缓存的目的是使安装特定于语言的依赖项变得简单快捷,因此与Bundler,pip,Composer,npm,Gradle,Maven等工具相关的所有内容都应该放入缓存中。
安装速度快但下载速度慢的大型文件无法从缓存中受益,因为它们从缓存中下载的时间与原始源相同:
我在Java项目中使用Gradle。
Gradle缓存的似乎是那些.jar
文件,它们应属于类别"快速安装"。
所以我的问题是,如果.jar
文件安装快但下载速度慢,为什么Travis建议缓存Gradle依赖?
这些好处(就更短的构建时间而言)来自哪里?
答案 0 :(得分:2)
这是一个很好的问题。我不确定缓存使用的好处,因为我从未测量过S3的下载时间,但它可能更快。
At the end of the linked page他们解释道:
如果存储大于几百兆的存档 缓存,你不太可能看到显着的速度提升。
似乎他们认为缓存大量小文件比单独下载更快。
适合此类别的Gradle文件可以快速安装和快速下载。
他们不建议使用缓存来快速安装文件和SLOW下载,如1GB Android的系统映像。
在我看来,他们之所以说这是因为你在这种情况下伤害了他们的S3配额(我不知道这项服务的条款),对你来说可以获得微不足道的好处。