gradle中的UP-TO-DATE表示什么?

时间:2013-02-28 13:54:12

标签: gradle

我最近开始在项目中使用gradle并运行标准

gradle clean init build

我注意到在许多正在运行的任务中,我在控制台中,在正在运行的当前任务旁边收到此UP-TO-DATE消息。例如: -

:foo:bar:test UP-TO-DATE

我很好奇这条消息是什么意思。无法找到相同的文档。

4 个答案:

答案 0 :(得分:17)

Gradle所做的一切都是一项任务。大多数任务都声明了输入和输出。 Gradle将通过检查输入和输出来确定任务是否是最新的。

例如,您的compile任务输入是源代码。如果源代码自上次编译后没有更改,那么它将检查输出以确保您没有吹走编译器生成的类文件。如果输入和输出未更改,则认为任务“是最新的”并且不执行该任务。这可以节省大量时间,尤其是在大型构建上。

答案 1 :(得分:7)

BTW:如果您确实想要绕过此构建优化,您可以使用--rerun-tasks命令行选项强制执行每项任务。 见documentation of gradle command-line options

答案 2 :(得分:5)

Gradle是一个增量构建系统。这意味着它会在实际执行任务之前检查任务是否必须真正执行,以便更快。

因此,例如,如果您已经在先前版本中编译了源文件,并且没有修改任何源文件(也没有修改编译任务的任何其他输入),那么Gradle将不会重新编译所有源文件,因为它知道它将导致与build文件夹中已存在的输出完全相同的输出。因此可以安全地跳过编译,从而加快构建速度。

the documentation

中的更多信息

答案 3 :(得分:0)

我遇到了类似的问题尝试了所有选项,但下面的一个对我有用:

 gradle  -Dorg.gradle.daemon=false <your tasks>