You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle Task修改需求:删除目录内容但排除Jar文件等问题

Gradle Task 编写解决方案:排除特定文件、删除空目录与递归删除

Hey there! Let's break down your Gradle Task questions with practical, actionable solutions:

1. 修改现有任务,删除目录内容但排除.jar等特定文件

Looking at the code snippet from Heri, we can adjust it to skip .jar files (or any other extensions you want) in two clean ways:

方式一:遍历文件时添加过滤条件

直接在遍历目录内容时,判断文件后缀并跳过:

task deleteGraphicsAssets(type: Delete) {
    def dirName = "src"
    file(dirName).listFiles().each { file ->
        // 排除.jar文件,可添加多个条件比如 || file.name.endsWith(".zip")
        if (!file.name.endsWith(".jar")) {
            delete file
        }
    }
}

方式二:用Gradle的fileTree(更简洁的官方风格)

fileTree支持直接通过exclude规则过滤文件,可读性更强:

task deleteGraphicsAssets(type: Delete) {
    def dirName = "src"
    // 删除目录下所有内容,排除.jar文件
    delete fileTree(dirName) {
        exclude "*.jar"
        // 如果要排除特定子目录,也可以加:exclude "subdir/**"
    }
}

附Heri提供的原始代码片段:

task deleteGraphicsAssets(type: Delete) { 
    def dirName = "src" 
    file( dirName ).list().each{ f -> 
        delete "${dirName..."

2. 删除空目录(递归检查并删除)

Gradle没有内置的空目录删除任务,但我们可以自定义一个任务,用Groovy的文件遍历能力从最底层开始清理空目录:

task deleteEmptyDirectories {
    doLast {
        def targetDir = file("src") // 替换为你的目标目录
        // POST_ORDER确保先处理子目录,再处理父目录(父目录变空后也能被删除)
        targetDir.traverse(
            type: FileType.DIRECTORIES,
            maxDepth: -1, // 递归所有层级
            visit: FileVisit.POST_ORDER
        ) { dir ->
            if (dir.listFiles().isEmpty()) {
                println "Deleting empty directory: ${dir.absolutePath}"
                dir.delete()
            }
        }
    }
}

3. 递归删除目录所有内容(或目录本身)

情况一:删除目录及其所有内容(彻底删掉目录)

Gradle的Delete任务默认支持递归删除,直接指定目录即可:

task deleteDirectoryCompletely(type: Delete) {
    delete "src" // 替换为你的目标目录
}

情况二:只删除目录内容,保留目录本身

用fileTree指定目录下的所有内容,不删除目录本身:

task deleteDirectoryContent(type: Delete) {
    delete fileTree("src") // 只删src下的所有文件/子目录,保留src目录
}

内容的提问来源于stack exchange,提问作者Cymbaline Austin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:31:24