我有以下内容:
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
目录已经存在,那么任务就是{{1 }}。怎么办呢?
答案 0 :(得分:2)
请注册任务output,而不是启用/禁用任务,如果任务是最新的,则gradle将会注意到自己。请查看下面的示例,您可以找到它们:
<application>
...........
.................
<activity android:name=".aaaa" />
</application>
如果您运行task mk(type: Exec) {
def output = project.file('mk')
outputs.dir output
commandLine 'mkdir', output
workingDir '.'
}
两次,则任务只会执行一次。