我在 build.gradle 文件中添加了以下删除任务:
task cleanExtra(type: Delete) {
delete '../version.properties'
}
clean.dependsOn(cleanExtra)
有时,当我调用时gradle clean
,它会失败并显示“无法删除文件:(...)/version.properties”。但是如果我再次调用相同的清理任务,它将成功删除该任务。
为什么会这样?无论如何要避免它?
我在 build.gradle 文件中添加了以下删除任务:
task cleanExtra(type: Delete) {
delete '../version.properties'
}
clean.dependsOn(cleanExtra)
有时,当我调用时gradle clean
,它会失败并显示“无法删除文件:(...)/version.properties”。但是如果我再次调用相同的清理任务,它将成功删除该任务。
为什么会这样?无论如何要避免它?
听起来像是 JIRA 问题Gradle-2244:
无法删除文件/目录,随后的清理将成功。
从最后一条评论:
经过一些研究,这似乎是由于 Windows JDK(包括 IBM)中的一个错误。Ant 使用的策略是在删除失败后强制 GC,然后等待一小段时间。鉴于这对 Ant 来说似乎是一个成功的策略,我们采用了它。
此问题在版本 1.1-rc-1 中标记为已修复。大概您观察到的行为是“修复”,这是 JDK 错误的解决方法。所以我猜想这种行为可能会出现在 Gradle 的更高版本中。