Gradle:修改build.gradle后如何禁用UP-TO-DATE检查?
解决Gradle任务仍判定为UP-TO-DATE的问题
问题根源
--disable-up-to-date-check仅作用于单个指定任务,不会覆盖其依赖任务的最新状态校验逻辑。- 构建生成文件已纳入版本控制,Clean任务仅清理构建目录,无法移除这些受版本管控的文件,Gradle会判定输入输出无变化。
- 修改
build.gradle后,若配置变更未实际影响任务的输入输出集合,Gradle仍会通过哈希校验判定任务为UP-TO-DATE。
可行解决方案
- 强制执行全链路任务:执行
gradle taskFoo --rerun,该参数会强制重新执行目标任务及其所有依赖任务,直接跳过最新状态检查。 - 永久禁用任务的最新状态校验:在
build.gradle中为目标任务添加配置,让Gradle每次都执行该任务:task taskFoo { outputs.upToDateWhen { false } // 其他任务配置内容 } - 调整版本控制规则:若生成文件无需纳入版本控制,将其添加到对应版本控制的忽略文件(如
.gitignore),之后执行gradle clean taskFoo即可彻底清理并重新构建。 - 排查输入输出配置:执行
gradle taskFoo --info查看Gradle判定UP-TO-DATE的具体依据,确认修改build.gradle后任务的输入输出集是否真的发生变更,再针对性调整任务定义。
内容的提问来源于stack exchange,提问作者eastwater
相关产品推荐
相关产品推荐

