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



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

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

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

您可以根据通过命令行传递的属性启用/禁用 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}"
}

最新更新