协议缓冲区:如何在gradle中构建时排除代码生成?

时间:2017-10-27 14:57:19

标签: java gradle build.gradle protocol-buffers

我们有几个.proto文件,从中生成java类。

因为我们必须将生成的文件保存在存储库中,所以我们只想在我们想要的时候(而不是在每次构建期间)生成它们。我们正在使用this插件。我们也想坚持使用这个插件,因为我们配置了很多东西,我们发现它非常有用。

有没有办法在gradle中build任务期间排除代码生成?

1 个答案:

答案 0 :(得分:0)

您可以根据通过命令行传递的属性启用/禁用protobuf任务:

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.3'
  }
}

apply plugin: 'java'
apply plugin: 'com.google.protobuf'

protobuf {
  generateProtoTasks {
    all().each { task ->
            task.enabled = project.hasProperty('runProtobuf')
    }
  }
}


afterEvaluate {
  println "generateProto enabled ${tasks.generateProto.enabled}"
  println "generateTestProto enabled ${tasks.generateTestProto.enabled}"
}