gpt4 book ai didi

gradle - 如何在Gradle中为 `@OutputDirectory`任务指定 `Exec`?

转载 作者:行者123 更新时间:2023-12-03 03:12:55 25 4
gpt4 key购买 nike

我有以下内容:

task cloneProtobuf(type: Exec) {
workingDir "${rootProject.buildDir}/github.com/google"
commandLine 'git', 'clone', 'https://github.com/google/protobuf.git'

enabled = { -> !new File(workingDir, "protobuf/.git").isDirectory() }()
doFirst {
mkdir workingDir
}
}

与其明确地设置 enabled并没有让gradle指示该任务是 SKIPPED,而是让gradle考虑一下,如果 protobuf目录已经存在,那么该任务就是 UP-TO-DATE。如何才能做到这一点?

最佳答案

而不是启用/禁用任务,请注册一个任务output,然后gradle会知道任务是否最新。请看下面的示例,对您有帮助:

task mk(type: Exec) {
def output = project.file('mk')
outputs.dir output
commandLine 'mkdir', output
workingDir '.'
}

如果您运行 gradle mk两次,该任务将仅执行一次。

关于gradle - 如何在Gradle中为 `@OutputDirectory`任务指定 `Exec`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43501684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com