这里提供几个不同场景下的 Gradle 缓存清理脚本,你可以根据需求选择使用。

基础清理脚本(Linux/macOS)
#!/bin/bash
# 文件名: clean-gradle-cache.sh
echo "===== Gradle 缓存清理工具 ====="
echo ""
# Gradle 缓存目录
GRADLE_CACHE_DIR="$HOME/.gradle/caches"
# 检查目录是否存在
if [ ! -d "$GRADLE_CACHE_DIR" ]; then
echo "❌ Gradle 缓存目录不存在: $GRADLE_CACHE_DIR"
exit 1
fi
# 显示当前缓存大小
echo "📊 当前缓存大小:"
du -sh "$GRADLE_CACHE_DIR" 2>/dev/null
echo ""
# 清理所有缓存
echo "🔄 正在清理所有缓存..."
rm -rf "$GRADLE_CACHE_DIR"/*
# 可选:只清理特定版本或旧版本
# rm -rf "$GRADLE_CACHE_DIR/modules-2" # 只清理依赖缓存
# rm -rf "$GRADLE_CACHE_DIR/transforms-1" # 只清理转换缓存
echo "✅ 清理完成!"
echo ""
echo "📊 清理后缓存大小:"
du -sh "$GRADLE_CACHE_DIR" 2>/dev/null
echo ""
echo "⚠️ 下次构建时会重新下载依赖,请确保网络连接正常"
Windows PowerShell 脚本
# 文件名: clean-gradle-cache.ps1
Write-Host "===== Gradle 缓存清理工具 =====" -ForegroundColor Green
Write-Host ""
$gradleCacheDir = "$env:USERPROFILE\.gradle\caches"
# 检查目录是否存在
if (-not (Test-Path $gradleCacheDir)) {
Write-Host "❌ Gradle 缓存目录不存在: $gradleCacheDir" -ForegroundColor Red
exit 1
}
# 获取缓存大小
$size = (Get-ChildItem -Path $gradleCacheDir -Recurse | Measure-Object -Property Length -Sum).Sum / 1MB
Write-Host "📊 当前缓存大小: $( [math]::Round($size, 2) ) MB" -ForegroundColor Yellow
Write-Host ""
Write-Host "🔄 正在清理所有缓存..." -ForegroundColor Cyan
# 清理缓存
Remove-Item -Path "$gradleCacheDir\*" -Recurse -Force -ErrorAction SilentlyContinue
Write-Host ""
Write-Host "✅ 清理完成!" -ForegroundColor Green
Write-Host ""
Write-Host "⚠️ 下次构建时会重新下载依赖,请确保网络连接正常" -ForegroundColor Yellow
选择性清理脚本(保留最近版本)
#!/bin/bash
# 文件名: smart-clean-gradle.sh
echo "===== 智能 Gradle 缓存清理 ====="
echo ""
GRADLE_CACHE_DIR="$HOME/.gradle/caches"
# 检查目录
if [ ! -d "$GRADLE_CACHE_DIR" ]; then
echo "❌ 目录不存在"
exit 1
fi
# 显示当前状态
echo "📊 当前 Gradle 缓存信息:"
du -sh "$GRADLE_CACHE_DIR" 2>/dev/null
echo ""
# 清理选项
echo "请选择清理类型:"
echo "1) 清理所有缓存(包括 Gradle wrapper 和依赖)"
echo "2) 只清理依赖缓存(保留 Gradle wrapper)"
echo "3) 只清理旧的 Gradle 版本(保留最新版本)"
echo "4) 清理 proguard 混淆缓存"
echo ""
read -p "请输入选项 (1-4): " choice
case $choice in
1)
echo "🔄 清理所有缓存..."
rm -rf "$GRADLE_CACHE_DIR"/*
;;
2)
echo "🔄 清理依赖缓存..."
rm -rf "$GRADLE_CACHE_DIR/modules-2"
rm -rf "$GRADLE_CACHE_DIR/transforms-1"
;;
3)
echo "🔄 清理旧的 Gradle 版本..."
# 保留当前使用的版本(根据需要调整)
cd "$GRADLE_CACHE_DIR"
for dir in gradle-*/; do
if [ "$dir" != "gradle-latest/" ]; then
echo "删除: $dir"
rm -rf "$dir"
fi
done
;;
4)
echo "🔄 清理 proguard 缓存..."
rm -rf "$GRADLE_CACHE_DIR/transforms-*"
rm -rf "$GRADLE_CACHE_DIR/*.jar"
;;
*)
echo "❌ 无效选项"
exit 1
;;
esac
echo ""
echo "✅ 清理完成!"
echo "📊 清理后大小:"
du -sh "$GRADLE_CACHE_DIR" 2>/dev/null
定时自动清理脚本(Linux cron)
#!/bin/bash
# 文件名: auto-clean-gradle.sh
# 用途:自动清理超过 30 天的缓存
echo "[$(date)] 开始自动清理 Gradle 缓存..."
GRADLE_CACHE_DIR="$HOME/.gradle/caches"
if [ -d "$GRADLE_CACHE_DIR" ]; then
# 清理 30 天未使用的文件
find "$GRADLE_CACHE_DIR" -atime +30 -delete 2>/dev/null
echo "✅ 清理完成:删除30天以上未使用的缓存"
else
echo "⚠️ 缓存目录不存在"
fi
使用方法:
- Linux/macOS 用户:
# 添加执行权限 chmod +x clean-gradle-cache.sh
运行脚本
./clean-gradle-cache.sh
2. **Windows 用户**:
```powershell
# 以管理员身份运行
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
.\clean-gradle-cache.ps1
- 定时清理设置(Linux):
# 每天凌晨 3 点执行 crontab -e 0 3 * * * /path/to/auto-clean-gradle.sh
注意事项:
- ⚠️ 清理后首次构建会较慢,因为需要重新下载所有依赖
- 💾 建议保留 .gradle/caches 目录下的 journal 文件夹
- 🔧 如果使用 Android Studio,也可以通过
File > Invalidate Caches清理 - 📦 对于 Maven 本地仓库,可以通过删除
~/.m2/repository清理
选择适合你需求的脚本,建议优先使用智能清理脚本以避免不必要的完整重建。