build.gradle.kts中的自定义清理/删除任务

时间:2018-08-22 12:13:07

标签: gradle gradle-kotlin-dsl

我有一个非常基本的自定义版本(Minecraft资源包的压缩和复制)

目录布局

Project
- src (future Java/Kotlin sources for resource pack preprocessing)
- build (future Java/Kotlin class output folder, kept seperate from produced assets)
- rp (the 'src' folder for the resource pack assets, pre-processing.
  - assets
- rp-out (the 'build' folder for the resource pack assets, post-processing.
  - ResourcePack.zip
  - ResourcePack
    - variousAssetsToZip

和以下build.gradle.kts

plugins {
    id("base")
}

tasks.create<Copy>("copy") {
    description = "Basic copy"
    group = "custom"
    from("rp")
    into("rp-out/${project.name}")
}

tasks.create<Zip>("zip") {
    description = "Archives the resource pack output"
    group = "Archive"
    from("rp-out/${project.name}")
    destinationDir = file("rp-out")
}

tasks.create<Delete>("cleanRP") {
    group = "build"
    delete {
        file("rp-out")
        file("rp-zip")
    }
}

我希望这将清除/删除 文件夹rp-out,rp-zip本身或内容。

但是我无法获得cleanRP任务来删除文件夹内容,它只是完成了任务,没有任何效果。

我对Java项目的gradle有点熟悉,这是我完成的第一个Kotlin脚本,但是我一直在适当地注意会议演讲。

如何有效调试?在gradle kotlin-dsl的早期阶段,我应该如何独自学习?

(这个问题的解决方案是什么?)

1 个答案:

答案 0 :(得分:1)

删除是任务的属性,并使用“设置符”进行设置。

它接受Set,因此可以使用kotlin setOf语法定义Gradle支持的一组“类似于文件”类型。

示例:

tasks.create<Delete>("cleanRP") {
    group = "rp"
    delete = setOf (
        "rp-out", "rp-zip"
    )
}