java - Protocol Buffer :如何在gradle的构建期间排除代码生成?

标签 java gradle build.gradle protocol-buffers

我们有一些.proto文件,可从中生成Java类。

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

有没有办法在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}"
}

关于java - Protocol Buffer :如何在gradle的构建期间排除代码生成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46977983/

相关文章:

android - 程序类型已经存在:com.squareup.picasso.Action $ RequestWeakReference

java - Eclipse Juno xml 错误

java - 使用 JAXB 将具有类似映射结构的 xml 解码为对象

Java JRE 混合代码安全性,从 JRE 1.6.0_19 开始

android-studio - 在 Android Studio 3.0.1 上将 Flutter 项目更新到 Gradle 4.1 时生成错误

android - 具有在线 git 集成的 Ruby 的 Gemfile 等同于 Android 和 Gradle?

java - Android 以编程方式将图像设置为 TextView 的背景

android - 将资源文件安装到apk根目录

android-studio - Android Studio 1.3 中的代理背后的 gradle

gradle - React Native 生成​​签名 APK "KeyStore file not set for signing config release"