gradle 中的 FROM-CACHE 和 UP-TO-DATE 有什么区别?

What is the difference between FROM-CACHE and UP-TO-DATE in gradle?

我是 运行 多模块 gradle 构建并启用了缓存。例如,有些任务说 UP-TO-DATE,有些说 FROM-CACHE

> Task :components:security:testFixturesClasses UP-TO-DATE
> Task :components:security:checkstyleTestFixtures FROM-CACHE

UP-TO-DATE 任务和 FROM-CACHE 任务之间究竟有什么区别? gradle 如何确定什么是 UP-TO-DATEFROM-CACHE

Gradle 使用两个主要功能来减少构建时间,incremental builds and task output caching

增量构建 用于 运行 自上次 运行 以来没有 changes 的任务,为此,gradle 将指纹和其他内容存储在本地目录名称中。gradle。当您 运行 一个已执行且未更改的任务时,会在任务旁边打印 UP-TO-DATE

任务输出缓存主要用于CI环境,当在CI作业的每个阶段删除和检出本地存储库时,这意味着保存任务指纹等的本地目录 .gradle 将在每个阶段后消失,因此每次都会重建任务并且 增量构建 将不起作用。 tasks output caching的作用就来了,使用的时候gradle会生成一个缓存,可以用来重新填充本地的.gradle目录,当构建缓存已用于重新填充本地目录任务被标记为 FROM-CACHE,一旦本地目录被重新填充,下一次执行将标记任务为 UP-TO-DATE 而不是 FROM-CACHE.

我希望这有助于理解 UP-TO-DATEFROM-CACHE

之间的区别