2015-06-24 10 views
12

Ich habe gerade angefangen, mit Google Proto zu spielen. Wenn ich versuche, eine Proto-Datei, die in einem Proto-Java-Beispiel vorhanden ist, zu kompilieren, erzeugt es keine Grpc-Datei.protok nicht erzeugenden Service-Stub-Dateien

proto-Datei, https://github.com/grpc/grpc-java/blob/master/examples/src/main/proto/hello_world.proto

Terminal-Ausgabe,

rsonkhla @ Raman--OptiPlex-9020: ~/Sandbox/grpc-java/Beispiele $ Protoc --Version libprotoc 3.0.0 rsonkhla @ raman-OptiPlex-9020: ~/sandbox/grpc-java/Beispiele $ protoc --java_out = test/-I ../../ grpc-java/Beispiele ../../grpc-java/examples/ src/main/proto/hallo_world.proto rsonkla @ raman-OptiPlex-9020: ~/sandbox/grpc-java/beispiel $ ls -R test/ test /: io

test/io: grpc

test/io/grpc: Beispiele

test/io/grpc/Beispiele: Hello World

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

Hat jemand anderes dieses Problem konfrontiert?

+0

Bitte ignorieren. Ich habe proto-gen-grpc-java Plugin-Pfad beim Kompilieren nicht übergeben ... –

+0

rsonkla @ raman-OptiPlex-9020: ~/sandbox/grpc-java/Beispiele $ protoc --plugin = proto-gen-java_rpc = ../compiler/build/binaries/java_pluginExecutable/protoc-gen-grpc-java --java_rpc_out = test/--java_out = test/-I. src/main/proto/hello_world.proto Test/io/grpc/examples/helloworld: GreeterGrpc.java HelloRequest.java HelloRequestOrBuilder.java HelloResponse.java HelloResponseOrBuilder.java HelloWorldProto.java –

+0

Ich benutze protobuf-Maven-Plugin, es kann auch keine Service-Stub-Dateien generieren. –

Antwort

13

Die angezeigte Befehlszeile aktiviert das Grpc-Plugin nicht. Sie müssen ein _out-Argument für das grpc-Plugin angeben, das das Plugin aktiviert und angibt, wo es Dateien ausgeben soll. Da das Plugin wahrscheinlich nicht in Ihrem PATH ist, müssen Sie Protoc auch mitteilen, wie Sie das Plugin mit --plugin finden.

Sie müssen also zwei Argumente hinzuzufügen:

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

Weitere Informationen finden Sie in der gRPC compiler documentation.

+0

Hallo Eric, ich versuche, dies zu machen, habe ich Protoc-Gen-Grpc-java.jar von Maven heruntergeladen, aber egal wie ich es zu diesem Argument füttern wird es mir immer noch sagen, dass "Datei nicht gefunden oder ist nicht ausführbar ", vielleicht sollte ich ein anderes Artefakt anstelle von JAR-Datei haben? – vach

+0

ist Ihr "Pfad/zu/Protoc-Gen-Grpc-Java" auf eine JAR-Datei oder etwas anderes zeigen? – vach

+3

Pfad/zu/Protoc-Gen-Grpc-Java ist eine Binärdatei (z. B. eine native ELF-Binärdatei für Linux). Es ist kein JAR. Sie finden vorgefertigte Versionen unter http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22io.grpc%22%20a%3A%22protoc-gen-grpc-java%22 (z. B. , linux-x86_32.exe, die wie '--plugin = protoc-gen-grpc-java = pfad/zu/linux-x86_32.exe' verwendet werden könnte) –