gradle缓存需分类清理:依赖缓存(caches/modules-)存下载的jar等;构建缓存(caches/build-cache-)存任务输出;wrapper/dists存gradle发行版。应按需使用cleanbuildcache、clean或针对性删除,避免误删,并通过gradle.properties配置长效管控。

Gradle 的缓存分散在多个位置,直接删错可能影响构建稳定性。精细化清理的关键是区分缓存类型、明确作用范围,并按需执行,而不是一股脑清空 ~/.gradle/caches/。
识别并分类关键缓存目录
Gradle User Home(默认为 ~/.gradle)下主要有三类缓存,各自职责不同:
-
依赖缓存(
caches/modules-*):存储从 Maven 中央仓、JCenter 等下载的 jar/aar/pom 文件,体积最大,但重用率高; -
构建缓存(
caches/build-cache-*):保存任务输出(如编译结果、资源处理产物),启用org.gradle.caching=true后生成,可跨项目复用; -
Gradle 发行版缓存(
wrapper/dists):存放不同版本 Gradle 的二进制压缩包(如gradle-8.10-bin.zip),不参与构建过程,仅用于 wrapper 初始化。
按场景选择精准清理命令
避免盲目 rm -rf ~/.gradle/caches,优先使用 Gradle 自带机制或针对性删除:
- 只清构建缓存(安全、推荐日常使用):
./gradlew cleanBuildCache—— 删除所有 build cache 条目,不影响依赖和 wrapper; - 只清当前项目的构建产物:
./gradlew clean—— 删除项目级build/目录,不触碰~/.gradle; - 清空所有本地依赖缓存(谨慎):
rm -rf ~/.gradle/caches/modules-*—— 执行前建议先备份关键依赖(如私有仓库包),下次构建会重新下载; - 清理过期 Gradle 版本(低风险):
rm -rf ~/.gradle/wrapper/dists/*-bin—— 保留正在使用的版本(查gradle-wrapper.properties中的distributionUrl),删掉其他旧版压缩包。
配置 gradle.properties 实现长效空间管控
通过属性文件限制缓存行为,从源头减少膨胀:
- 禁用构建缓存(若团队不共享或机器内存紧张):
org.gradle.caching=false; - 设置缓存最大大小(Gradle 7.4+ 支持):
org.gradle.configuration-cache.max-size=2g; - 启用自动清理旧依赖(需配合定期执行):
org.gradle.cache.cleanup.enabled=true(注意:此为实验性功能,需确认 Gradle 版本支持); - 指定独立缓存路径(便于监控与隔离):
org.gradle.caches.dir=/mnt/fastdisk/.gradle-caches,再对挂载点做磁盘配额管理。
验证与辅助工具建议
清理后建议快速验证是否影响正常构建:
- 运行
./gradlew --version确认 Gradle 可正常加载; - 执行
./gradlew dependencies --configuration compileClasspath检查依赖解析是否成功; - 用
du -sh ~/.gradle/caches/*查看各子目录实际占用,定位长期臃肿根源(例如某模块频繁拉取 snapshot 版本导致modules-*不断增长); - 搭配
gradle scan(开启--scan)分析构建耗时与缓存命中率,判断哪些缓存值得保留。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











