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

时间:2017-04-19 16:51:35

标签: gradle

我有以下内容:

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 }}。怎么办呢?

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 '.' } 两次,则任务只会执行一次。

相关问题