You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle中--rerun-tasks与--refresh-dependencies的区别是什么

--rerun-tasks 与 --refresh-dependencies 核心区别

二者都是Gradle构建工具的命令行参数,作用场景完全独立,具体差异如下:

1. 各自功能定义

  • --rerun-tasks

    核心作用是强制跳过Gradle的增量构建缓存校验,让本次执行链路中的所有任务全部重新运行一遍,不管之前的任务缓存是否命中、输入输出是否有变化。
    该参数完全不涉及依赖的校验、拉取逻辑,只会直接使用本地已缓存的依赖文件,不会主动更新或重新拉取任何依赖。
    典型使用场景:修改了构建脚本、自定义任务代码后,避免旧缓存导致构建结果不符合预期,无需手动清理build目录即可强制全量执行任务。
    示例命令:gradle assembleRelease --rerun-tasks

  • --refresh-dependencies

    核心作用是强制Gradle忽略本地已缓存的依赖元数据与实体文件,重新向配置的远端仓库发起校验,拉取符合版本规则的最新依赖文件。
    该参数完全不影响任务的增量构建逻辑:如果任务的输入输出没有发生变化,即便加了该参数,对应任务依然会命中缓存,不会重新执行。
    典型使用场景:依赖使用了SNAPSHOT版本、动态版本规则(如2.+)时,需要拉取远端最新的对应依赖包。
    示例命令:gradle assembleRelease --refresh-dependencies

2. 针对性问题解答

你所问的--rerun-tasks是否会刷新所有依赖:不会,该参数仅作用于任务执行逻辑,全程使用本地已有的依赖缓存,不会发起任何依赖拉取请求。
如果需要同时实现「强制重跑所有任务+刷新最新依赖」,可同时传入两个参数:
gradle build --rerun-tasks --refresh-dependencies

内容的提问来源于stack exchange,提问作者JuanAndres

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 23:15:04