Windows10环境下Gradle Daemon并行运行触发文件锁超时如何解决?
修复方案
第一步:清理残留进程和锁文件
- 强制终止所有运行中的Gradle相关进程,CMD中执行命令:
# 批量杀所有Java进程(如果没有其他Java程序在运行推荐用这个) taskkill /F /IM java.exe # 或者单独杀报错里的指定PID进程 taskkill /F /PID 16440 - 打开全局Gradle缓存目录
C:\Users\injec\.gradle\caches,删除所有后缀为.lock的残留锁文件,包括journal-1、modules-2等所有子目录下的锁文件 - 执行
.\gradlew --status确认无存活的Gradle守护进程
第二步:调整Gradle配置规避锁冲突
单次生效临时方案
多项目并行启动时可以加参数规避全局锁冲突:
# 把锁超时时间拉长到30秒,适配Windows系统IO延迟 .\gradlew run -Dorg.gradle.lock.timeout=30000 # 给每个项目指定独立的Gradle用户目录,完全避免抢占全局缓存锁 .\gradlew run -g ./local-project-gradle-cache
全局生效永久方案
在C:\Users\injec\.gradle目录下新建/修改gradle.properties文件,添加以下配置:
org.gradle.daemon=true org.gradle.parallel=true org.gradle.caching=true # 全局设置锁超时时间为30秒 org.gradle.lock.timeout=30000
第三步:排查系统层面影响因素
- 检查Windows Defender/第三方杀毒软件的实时扫描规则,将
C:\Users\injec\.gradle目录加入扫描排除列表,Win10系统更新后杀毒软件的扫描策略变更会占用缓存文件,导致Gradle拿不到锁 - 确认
.gradle目录没有被OneDrive、各类网盘等同步软件托管,同步操作会锁定文件导致锁获取失败 - 右键
.gradle目录→属性→安全,确认当前登录用户拥有该目录的完全控制权限,没有被设置为只读 - 以上操作都无效的话执行一次系统重启(不要用关机再开机,Win10默认快速开机会保留内核缓存,只有重启会完全重置所有进程状态)
内容的提问来源于stack exchange,提问作者injecteer
相关产品推荐
相关产品推荐

