Groovy 构造/销毁自定义渐变任务

Groovy 构造/销毁自定义渐变任务,groovy,gradle,Groovy,Gradle,我是gradle/groovy的新手。我想创建自定义任务,这将做一些事情。我的第一个问题是任务完成后如何做?我可以重写doFirst/doLast闭包吗?也许我可以重写一些方法,在开始和结束时都会做一些事情 这是我的“任务” 正如上面所说(有人问了同样的问题),你应该 将您的build()代码包装在try…finally块中 或者将自定义任务文件夹写入build目录,以便在用户执行gradle clean 也许您可以使用该位置,让Gradle为您清理?需要在任务操作中创建(并删除)临时目录;否

我是gradle/groovy的新手。我想创建自定义任务,这将做一些事情。我的第一个问题是任务完成后如何做?我可以重写doFirst/doLast闭包吗?也许我可以重写一些方法,在开始和结束时都会做一些事情

这是我的“任务”

正如上面所说(有人问了同样的问题),你应该

  • 将您的
    build()
    代码包装在
    try…finally
    块中
  • 或者将自定义任务文件夹写入
    build
    目录,以便在用户执行
    gradle clean

也许您可以使用该位置,让Gradle为您清理?需要在任务操作中创建(并删除)临时目录;否则,即使手头的任务没有运行,也会为Gradle的每次调用创建它。与其删除它,不如将目录放在
build
下面(正如Tim所说)。谢谢。我用了本·曼斯写的temporaryDir,并试图用{}catch{}来清理它。
import java.nio.file.Files

class MyCustomTask extends DefaultTask {

    File buildDir
    File tempDir

    public MyCustomTask() {
        super()
        buildDir = project.getBuildFile().getParentFile()
        tempDir = Files.createTempDirectory(buildDir.toPath(), "MyCustomTask").toFile()
    }

    @TaskAction
    def build() {
        println("test");
    }

    // I want to delete tempDir ater task execution

}