build.gradle.kts 中的自定义清理/删除任务
Custom Clean / delete task in build.gradle.kts
我有一个非常基本的自定义构建(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任务,它只是完成了任务,没有任何表面上的效果。
我是一个小,熟悉 gradle 的 Java 项目,这是我完成的第一个 Kotlin 脚本,但我有适度关注会谈。
我怎样才能有效地调试它? gradle kotlin-dsl 处于初级阶段,我应该如何自学?
(还有这个问题的解决方案是什么?)
delete是一个属性的任务,使用'setter notation'设置。
它接受一个集合,因此使用 kotlin setOf 语法,您可以定义一组 Gradle 支持的 "file like" 类型。
示例:
tasks.create<Delete>("cleanRP") {
group = "rp"
delete = setOf (
"rp-out", "rp-zip"
)
}
您应该改用 delete() 配置方法,这样才能正确链接任务。
tasks.create<Delete>("cleanRP") {
group = "rp"
delete(
fileTree("rp-out"),
fileTree("rp-zip")
)
}
我有一个非常基本的自定义构建(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任务,它只是完成了任务,没有任何表面上的效果。
我是一个小,熟悉 gradle 的 Java 项目,这是我完成的第一个 Kotlin 脚本,但我有适度关注会谈。
我怎样才能有效地调试它? gradle kotlin-dsl 处于初级阶段,我应该如何自学?
(还有这个问题的解决方案是什么?)
delete是一个属性的任务,使用'setter notation'设置。
它接受一个集合,因此使用 kotlin setOf 语法,您可以定义一组 Gradle 支持的 "file like" 类型。
示例:
tasks.create<Delete>("cleanRP") {
group = "rp"
delete = setOf (
"rp-out", "rp-zip"
)
}
您应该改用 delete() 配置方法,这样才能正确链接任务。
tasks.create<Delete>("cleanRP") {
group = "rp"
delete(
fileTree("rp-out"),
fileTree("rp-zip")
)
}