Gradle:根据文件列表从目录中删除文件

Gradle:根据文件列表从目录中删除文件,gradle,build,build.gradle,Gradle,Build,Build.gradle,我目前正在尝试将我的旧ant系统迁移到gradle。我对gradle还很陌生,还在学习,所以也许这是我刚刚忽略的一件小事 我得到了一个名为delete.list的文件,其中包含我要删除的文件列表 这是我目前的代码: task deleteLib(type:DeleteFiles) { deleteList = file("${buildDir}/delete.list") } class DeleteFiles extends DefaultTask { @Sk

我目前正在尝试将我的旧ant系统迁移到gradle。我对gradle还很陌生,还在学习,所以也许这是我刚刚忽略的一件小事

我得到了一个名为delete.list的文件,其中包含我要删除的文件列表

这是我目前的代码:

task deleteLib(type:DeleteFiles) {    
    deleteList = file("${buildDir}/delete.list")
}



 class DeleteFiles extends DefaultTask {

    @SkipWhenEmpty
    @InputFile
    File deleteList

    DeleteFiles()
    {
        description = 'Deletes Libs from Integris zip'
    }

    @TaskAction
    void delete(){
        def lines = deleteList.readLines()
        lines.each {
            delete fileTree(dir: "${project.buildDir}", include: "${it}")
        }
    }
}
删除。列表:

lib/java/activation.jar
lib/java/pdfbox*.jar
lib/java/fontbox*.jar
lib/java/xmpbox*.jar
lib/java/jempbox*.jar
lib/java/iText*.jar
lib/java/itext*.jar
lib/java/jakarta-poi.jar
lib/java/commons-net*.jar
lib/java/jfreechart*.jar
lib/java/jcommon*.jar
lib/java/dom4j*.jar
lib/java/xmlbeans*.jar
lib/java/jaxen*.jar
lib/java/avalon-framework*.jar
lib/java/batik-all*.jar
通过谷歌搜索,我找到了这个解决方案,因为我的_delete.list可能在构建阶段不存在

我目前的问题是gradle似乎对
fileTree
方法有问题:

* What went wrong:
Execution failed for task ':deleteLib'.
> Could not find method fileTree() for arguments [{dir=C:\entwicklung\Testumgebung\testProjectGradle\build, include=lib/java/activation.jar}] on task ':deleteLib' of type DeleteFiles.

有人知道我这里缺少什么吗?

因为这两个方法都是在上定义的,groovy会查找任务中定义的方法,所以需要显式调用
项目
实例上的方法:

project.with {
   delete fileTree(dir: "${project.buildDir}", include: "${it}")
}

我仍然不确定这是如何工作的(我想我又回到了阅读gradle doc),但它解决了我的问题。非常感谢。