有没有一种方法可以在Windows上使用gradle来编译python protobuf?

时间:2019-06-26 09:04:34

标签: python gradle protocol-buffers protoc

我正在尝试使用gradle将原始文件编译成python,这对于Java而言似乎微不足道,但是由于某种原因,使用到目前为止我尝试过的任何方法都不适用于python。

以前,我已使用本教程将.proto文件编译为Java:https://github.com/google/protobuf-gradle-plugin 但是由于某种原因,似乎没有类似的解决方案可以编译python。 我仍然可以使用CLI手动对其进行编译,但是我真的很想创建一个解决方案,该解决方案不要求手动执行任何操作,也不要求在用户计算机上安装协议。 我在此线程中找到了线索:https://github.com/google/protobuf-gradle-plugin/issues/52,但它似乎对我不起作用。

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

plugins {
    id 'java'
    id "com.google.protobuf" version "0.8.8"
    id 'application'
}

group 'foo.bar'
mainClassName = 'some.class.name'
version '1.0.2'

apply plugin: 'eclipse'
apply plugin: 'maven-publish'
apply plugin: 'java'
apply plugin: 'com.google.protobuf'
apply plugin: 'idea'


repositories {
    mavenCentral()
}

dependencies {
    compile "com.google.protobuf:protobuf-java:3.6.0"
    compile("io.grpc:grpc-netty:1.7.0")
    compile("io.grpc:grpc-protobuf:1.7.0")
    compile("io.grpc:grpc-stub:1.7.0")
}

buildDir = "$rootProject.buildDir"

protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc:3.6.0"
    }
    plugins {
        grpc_java {
            artifact = "io.grpc:protoc-gen-grpc-java:1.17.1"
        }
        grpc_python {
            path = "python -m grpc_tools.protoc"
        }
    }


    generateProtoTasks {
        all()*.builtins {
            java {}
            python {}
        }
        all()*.plugins {
            grpc_java {
                outputSubDir = "java"
            }
            grpc_python {
                outputSubDir = "python"
            }
        }
    }
    generatedFilesBaseDir = "$buildDir/generated/src"
}

0 个答案:

没有答案