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

执行Gradle clean build任务失败,无法删除文件求助

Gradle Clean任务无法删除MANIFEST.MF文件的解决方案

我之前也碰到过一模一样的问题,这类文件删除失败的情况,大多和文件被进程占用或者权限配置异常有关。结合你已经执行过进程查杀操作的前提,给你几个针对性的排查和解决步骤:

1. 排查非Java进程对文件的占用

你用jps杀掉了Java进程,但有时候文件管理器、终端会话甚至系统后台服务也可能悄悄占用这些临时文件。可以用以下命令精准定位:

# 检查根项目下MANIFEST.MF的占用进程
lsof /home/user/folder1/projectfolder/buildDir/tmp/jar/MANIFEST.MF
# 检查模块目录下的对应文件
lsof /home/user/folder1/projectfolder/modulename/build/tmp/jar/MANIFEST.MF

如果查到相关进程,直接用kill -9 <进程PID>杀掉,再重新执行构建命令。

2. 手动清除残留构建目录

如果没查到占用进程,大概率是文件系统缓存或者临时锁导致的。直接手动删除整个build目录最直接:

# 删除根项目的build目录
rm -rf /home/user/folder1/projectfolder/buildDir
# 删除模块的build目录
rm -rf /home/user/folder1/projectfolder/modulename/build

删除完成后,重新运行你的构建命令:

./gradlew clean build --parallel -x test publishlocal

3. 检查文件与目录权限

有时候Gradle进程没有足够的权限删除文件,你可以先查看权限配置:

# 查看文件权限
ls -l /home/user/folder1/projectfolder/buildDir/tmp/jar/MANIFEST.MF
# 查看父目录权限
ls -ld /home/user/folder1/projectfolder/buildDir/tmp/jar/

如果当前用户没有读写权限,用以下命令递归修改:

chmod -R u+rw /home/user/folder1/projectfolder/buildDir
chmod -R u+rw /home/user/folder1/projectfolder/modulename/build

4. 临时禁用并行构建测试

你当前用了--parallel参数,并行模式下偶尔会出现资源竞争导致文件锁冲突。可以先去掉这个参数,单线程执行clean任务:

./gradlew clean build -x test publishlocal

如果单线程执行成功,再尝试开启并行构建——要是还是出问题,建议升级Gradle到最新稳定版,这类并行模式下的资源竞争问题很多都在新版本里修复了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 08:22:50