问题背景
今天在一个功能开发结束之后,准备通过Maven实现打包操作,然后打包完成后部署到测试环境进行测试。在IDEA开发工具,点击 clean 时提示 Failed to delete 错误提示,具体情况如图
考虑到clean 操作本身只是为了清理 target 下上次编译完成后打包的jar 包文件,既然clean 无法删除的话,那么直接选中文件删除尝试,结果还是不行,提示 java.io.IOException
问题分析&处理
到这里的话,基本上就知道大概的原因了,应该是因为当前的 sys-info.log 文件被其他进程占用,导致当前进程在删除 sys-info.log 文件时就会提示删除失败,以及对应的 java.io.IOException 。那么处理问题的方案也就比较简单,通常来说就是关闭IDEA开发工具,并且打开【任务管理器】找到idea 的进程 & java 相关进程结束任务
结束掉 idea 进程任务& java 进程任务之后,再次重新打开 IDEA开发工具,点击 Maven-clean 就可以了。但是在清理完 idea & java 进程任务之后,再次打开 IDEA开发工具还是无法clean 对应的 sys-info.log 文件,那么这种情况下在排查了其他可能打开 sys-info.log 文件的工具后,再次回归到 【任务管理器】 来排查一遍,这里看到这里竟然还有一个 java 进程
结束掉 隐藏的 java 进程后再次打开 IDEA 开发工具,点击 Maven-clean 尝试清理并打包,可以看到这时就可以了
问题总结
对于这类问题,在Maven 打包 clean 操作时遇到文件占用无法 clean 的问题,那么通常情况下关闭 IDEA 开发工具后,打开 任务管理器 清理 idea & java 相关进程后再次打开基本就可以了。当然也有可能会遇到不成功的情况,那么这种情况下,通常可能是你在任务管理器 清理进程时没有清理干净,或者是第一次打开任务管理器时没有找到 对应的 隐藏 java 进程,这个时候再次打开筛选一遍基本就可以了,最后如果还是不行,可以选择重启电脑,这样是一定可以的,哈哈。