I managed to generate the classes through the .proto file but they are in the build.
I would like the classes to be generated within the main because when I am going to extend the stub, it is not being possible to implement the methods.
Look:
File .proto:
syntax = "proto3"; package demogrpcserver.tcp; option java_multiple_files = true; option java_package = "com.example.demogrpcserver"; option java_outer_classname = "tcp"; service TCPService { rpc execute(TCPMonitorRequest) returns (TCPMonitorResponse); } message TCPMonitorRequest { string socketOpen = 1; string messageType = 2; } message TCPMonitorResponse { bool success = 1; string txId = 2; }
The .proto file is inside the main folder.
Does anyone know how to solve?
Advertisement
Answer
You can generate your Java classes anywhere you want with the protoc tool
protoc -I PATH_TO_YOUR_PROTOS --java_out=PATH_TO_JAVA_LOCALTION PROTO_FILE_NAME_THAT_WILL_BE_IN_$PATH_TO_YOUR_PROTOS protoc -I $PATH_TO_YOUR_PROTOS --java_out=$PATH_TO_JAVA_LOCALTION --plugin=protoc-gen-grpc-java=/usr/local/bin/protoc-gen-grpc-java PROTO_FILE_NAME_THAT_WILL_BE_IN_$PATH_TO_YOUR_PROTOS
Installing the protoc and protoc-grpc-java plugin
PROTOC_VERSION="3.12.0" JAVA_GEN_VERSION="3.7.1" JAVA_GRPC_GEN_VERSION="1.24.0" ## Protobuf compiler RUN apt-get update && apt-get install -y unzip && wget https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOC_VERSION/protoc-$PROTOC_VERSION-linux-x86_64.zip && unzip protoc-$PROTOC_VERSION-linux-x86_64.zip -d /usr/local/ && rm -rf protoc-$PROTOC_VERSION-linux-x86_64.zip # Protobuf Java RUN curl https://repo1.maven.org/maven2/io/grpc/protoc-gen-grpc-java/1.27.2/protoc-gen-grpc-java-1.27.2-linux-x86_64.exe -o /usr/local/bin/protoc-gen-grpc-java && chmod +x /usr/local/bin/protoc-gen-grpc-java
You can find more information here