我正在尝试使用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"
}