私はグーグルプロトで遊んだところです。プロトJavaの例にあるプロトファイルをコンパイルしようとすると、grpcファイルが生成されません。
protoファイル https://github.com/grpc/grpc-Java/blob/master/examples/src/main/proto/hello_world.proto
端末出力、
rsonkhla @ raman-OptiPlex-9020:〜/ sandbox/grpc-Java/examples $ protoc --version 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/examples $ ls -R test/test /:io
テスト/ 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
他の誰かがこの問題に直面しましたか?
表示されているコマンドラインではgrpcプラグインが有効になっていません。 grpcプラグインの_out引数を指定する必要があります。これにより、プラグインが有効になり、ファイルを出力する場所が指定されます。プラグインはPATH
に含まれていない可能性が高いため、--plugin
を使用してプラグインを検索する方法をprotocに指示する必要もあります。
したがって、2つの引数を追加する必要があります。
--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;
protoc
cmdに--plugin=EXECUTABLE
オプションを追加して、カスタムcode generator plugin
を使用して、「抽象」サービスに依存するのではなく、各システムに固有のコードを生成することもできます。エリックの提案のように。