Protoc не генерирует служебные файлы-заглушки

Я только начал играть с Google Proto. Когда я пытаюсь скомпилировать файл proto, представленный в примере с proto-java, он не создает файл grpc.

файл прото, https://github.com/grpc/grpc-java/blob/master/examples/src/main/proto/hello_world.proto

выходной терминал,

rsonkhla @ raman-OptiPlex-9020: ~ / sandbox / grpc-java / examples $ protoc - версия libprotoc 3.0.0 rsonkhla@raman-OptiPlex-9020:~/sandbox/grpc-java/examples$ protoc --java_out=test/ -I../../grpc-java/examples ../../grpc-java/examples/src/main/proto/hello_world.proto rsonkhla@raman-OptiPlex-9020:~/sandbox/grpc-java/ примеры $ ls -R test / test /: io

test / io: grpc

test / io / grpc: примеры

test / io / grpc / examples: helloworld

test / io / grpc / examples / helloworld: HelloRequest.java
HelloResponse.java HelloWorldProto.java HelloRequestOrBuilder.java HelloResponseOrBuilder.java

Кто-нибудь еще сталкивался с этой проблемой?

1 ответ

Командная строка, которую вы показываете, не включает плагин grpc. Вам нужно указать аргумент _out для плагина grpc, который включает плагин и указывает, куда он должен выводить файлы. Так как плагин скорее всего не в вашем PATH, вы также должны сказать protoc, как найти плагин с --plugin,

Так что вам нужно добавить два аргумента:

--plugin=protoc-gen-grpc-java=path/to/protoc-gen-grpc-java --grpc-java_out=path/to/output/dir

Для получения дополнительной информации см. Документацию компилятора gRPC.

Вы можете добавить эти опции в ваш.proto (на основе вашего языка) для генерации абстрактных сервисов:

option cc_generic_services = true;
option java_generic_services = true;
option py_generic_services = true;

Вы также можете добавить --plugin=EXECUTABLE вариант в вашем protoc CMD для использования пользовательских code generator plugin генерировать код, более специфичный для каждой системы, а не полагаться на "абстрактные" сервисы. Так же, как предложение Эрика.

Другие вопросы по тегам