Je viens de commencer à jouer avec google proto. Lorsque j'essaie de compiler le fichier proto présent dans l'exemple proto-Java, il ne génère aucun fichier grpc.
fichier proto, https://github.com/grpc/grpc-Java/blob/master/examples/src/main/proto/hello_world.proto
sortie terminale,
rsonkhla @ raman-OptiPlex-9020: ~/sandbox/grpc-Java/examples $ protocole --version libprotoc 3.0.0 rsonkhla @ raman-OptiPlex-9020: ~/sandbox/grpc-Java/exemples $ protocole --Java_out = test/-I ../../ grpc-Java/examples ../../grpc-Java/examples/src/main/proto/hello_world.proto rsonkhla @ raman-OptiPlex-9020: ~/sandbox/grpc-Java/exemples $ ls -R test/test /: io
test/io: grpc
test/io/grpc: exemples
test/io/grpc/exemples: helloworld
test/io/grpc/examples/helloworld: HelloRequest.Java
HelloResponse.Java HelloWorldProto.Java HelloRequestOrBuilder.Java HelloResponseOrBuilder.Java
Quelqu'un d'autre a-t-il fait face à ce problème?
La ligne de commande que vous affichez n'active pas le plugin grpc. Vous devez spécifier un argument _out pour le plugin grpc, qui active le plugin et spécifie où il doit sortir les fichiers. Étant donné que le plugin n'est probablement pas dans votre PATH
, vous devez également indiquer à Protocol comment trouver le plugin avec --plugin
.
Vous devez donc ajouter deux arguments:
--plugin=protoc-gen-grpc-Java=path/to/protoc-gen-grpc-Java --grpc-Java_out=path/to/output/dir
Pour plus d'informations, consultez le gRPC documentation du compilateur .
Vous pouvez ajouter ces option à votre .proto (basé sur votre langue) pour générer des services abstraits:
option cc_generic_services = true;
option Java_generic_services = true;
option py_generic_services = true;
Vous pouvez également ajouter l'option --plugin=EXECUTABLE
Dans votre protoc
cmd pour utiliser code generator plugin
Personnalisé afin de générer du code plus spécifique à chaque système, plutôt que de compter sur les services "abstraits". Tout comme la suggestion d'Eric.