我有以下内容:
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
}
}
我宁愿让 gradle 考虑如果 protobuf
目录已存在,该任务是最新
。如何做到这一点?
最佳答案
请注册一个任务 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/