如果文件被gradle守护程序锁定,该如何处理情况

时间:2018-10-06 13:09:11

标签: gradle build.gradle gradlew

运行gardle的应用程序processResources任务时(将资源从其源复制到目标目录,并可能对其进行处理)会尝试删除构建文件夹中的git.properties文件

但是,在运行proceeResources之前的某个任务中构建应用程序时,正在运行同一文件,但是该文件被gradle守护程序锁定,因此任务proceeResources无法在其上工作并结束出现错误,

java.io.IOException: Unable to delete file: {projectWebappPath}\build\resources\main\git.properties
> Unable to delete file: {projectWebappPath}\build\resources\main\git.properties

在SysinternalSuite中,如果我在Windows 7上运行程序procExp.exe,则可以看到该文件已被gradle守护程序锁定。

问题是:-

如何处理这种情况,我不知道,我正在尝试禁用守护程序,但不建议这样做。还是不能解决问题。

我已经在3天前开始遇到此问题,之前它还可以正常工作,我不知道这可能是什么原因,如果我暂时构建时尝试排除processResources任务,则会产生另一种影响,因此真的不能做到这一点。

我正在使用Windows 7,64位操作系统,试图在intellij终端上运行gradlew build

任何帮助或线索将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

在Windows上,可能有点相似:

taskkill /F /IM gradlew.bat /T

或gradle守护程序在那里使用的任何名称。

您还可以使用GUI任务管理器杀死停滞的实例。

通常,它只能是守护程序的最后一个实例,它可以锁定文件。还需要寻找*.lock文件,当使用各种用户帐户进行构建时,可能无法将其删除。