使用gradle任务删除包含所有文件的目录

使用gradle任务删除包含所有文件的目录,gradle,Gradle,在我的项目根目录中,我有一个目录,如下所示: build/exploded-project/WEB-INF/classes 我想使用gradle任务删除classes目录中的所有文件。我尝试了以下几种组合,但都不起作用: task deleteBuild(type: Delete) { project.delete 'build/exploded-project/WEB-INF/classes/' } task deleteBuild(type: Delete) { dele

在我的项目根目录中,我有一个目录,如下所示:

build/exploded-project/WEB-INF/classes
我想使用gradle任务删除classes目录中的所有文件。我尝试了以下几种组合,但都不起作用:

task deleteBuild(type: Delete) {
    project.delete 'build/exploded-project/WEB-INF/classes/'
}

task deleteBuild(type: Delete) {
    delete 'build/exploded-project/WEB-INF/classes/'
}

task deleteBuild(type: Delete) {
    delete '$rootProject.projectDir/build/exploded-project/WEB-INF/classes/'
}

task deleteBuild(type: Delete) {
    delete fileTree('build/exploded-project/WEB-INF/classes').matching {
        include '**/*.class'
    }
}

您的第二个变体是正确的,在这里工作正常。
尽管我建议不要硬编码路径。
使用
$buildDir
而不是
build
,或者如果路径是另一个任务的输出路径,则使用该任务的相应属性


如果它对您不起作用,请使用
-i
-d
运行,以获取有关发生了什么以及可能出现的错误的更多信息。

我使用-i运行它,它报告“Task”:deleteFiles“不是最新的,因为:Task尚未声明任何输出。”-但我从IntelliJ中刷新了我的gradle项目。那么它抱怨的这些“输出”是什么呢?不,没关系。渐变任务应该定义哪些任务和属性构成其输入,哪些文件构成其输出。然后Gradle可以很好地决定任务是最新的还是需要执行。在删除任务的情况下,当然没有输出文件,所以它可能总是过时的。