Я пытаюсь использовать gradle для компиляции прототипов файлов в python, задача, которая кажется тривиальной для java, но по какой-то причине не работает для python, используя то, что я до сих пор пробовал.
ранее я скомпилировал .proto файлы в java, используя этот учебник: https://github.com/google/protobuf-gradle-plugin
но по какой-то причине, похоже, нет аналогичного решения для компиляции Python.
Я все еще могу скомпилировать его вручную, используя CLI, но я действительно хотел бы создать решение, которое не требует выполнения каких-либо действий вручную или установки protoc на компьютере пользователя.
В этой теме я нашел отрывок: 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"
}