我最近在一个项目中开始使用gradle,并且正在运行标准版。
gradle clean init build
我注意到在许多正在运行的任务中,控制台旁边会显示这个 UP-TO-DATE 消息,说明当前任务正在运行。例如:
:foo:bar:test UP-TO-DATE
我很好奇这条消息的含义是什么。找不到相关的文档。
我最近在一个项目中开始使用gradle,并且正在运行标准版。
gradle clean init build
我注意到在许多正在运行的任务中,控制台旁边会显示这个 UP-TO-DATE 消息,说明当前任务正在运行。例如:
:foo:bar:test UP-TO-DATE
我很好奇这条消息的含义是什么。找不到相关的文档。
Gradle所做的一切都是任务。大多数任务都有声明的输入和输出。Gradle将通过检查输入和输出来确定任务是否为最新状态。
例如,您的compile
任务的输入是源代码。如果源代码自上次编译以来没有更改,则它将检查输出以确保您没有删除编译器生成的类文件。如果输入和输出未更改,则认为任务是“最新状态”,并且不执行该任务。这可以节省大量时间,特别是在大型构建中。
我遇到了类似的问题,尝试了所有的选项,但以下方法对我有效:
gradle -Dorg.gradle.daemon=false <your tasks>
outputs.upToDateWhen { false }
。代替false
的是你可以编写任何自定义代码来判断输出是否为最新。 - Gene Pavlovskyoutputs.upToDateWhen { false }
。你可以使用任何自定义代码来确定输出是否是最新的,而不仅仅是false
。 - Gene Pavlovsky