执行gradle clean build时无法删除目录,手动删除后仍无法构建
Gradle构建报错:无法删除build目录及后续构建失败问题
问题详情
执行构建时触发如下错误:
Unable to delete directory 'D:\user\random-project\build' Failed to delete some children. This might happen because a process has files open or has its working directory set in the target directory. - D:\user\random-project\build\tmp\.cache\expanded\expanded.lock - D:\user\random-project\build\tmp\.cache\expanded - D:\user\random-project\build\tmp\.cache - D:\user\random-project\build\tmp
手动删除build目录后,执行gradle clean build仍无法完成构建,但单独执行gradle clean可正常运行。
解决办法
1. 终止占用进程
打开任务管理器(或Process Explorer),搜索占用expanded.lock文件或build/tmp目录的进程,结束后重新执行构建。常见占用源包括IDE后台索引进程、工作目录设为build的终端窗口、第三方工具进程。
2. 调整Gradle配置
- 在项目的
build.gradle中添加强制清理逻辑,优先删除锁文件:
tasks.withType(Delete) { doFirst { fileTree(dir: project.buildDir, include: '**/*.lock').each { lockFile -> lockFile.delete() } } }
- 或者执行构建时禁用构建缓存:
gradle clean build --no-build-cache
3. 重启相关工具
直接重启IDE、终端等关联工具,清除后台残留进程后再尝试构建。
4. 检查目录权限
确认当前用户对D:\user\random-project目录拥有完全控制权限,避免因权限不足导致操作失败。
内容的提问来源于stack exchange,提问作者Preet Bista
相关产品推荐
相关产品推荐

