Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

protoc-jar-maven-plugin: Not generating grpc service stubs

I have added maven configuration as follows.

        <plugin>
              <groupId>com.github.os72</groupId>
              <artifactId>protoc-jar-maven-plugin</artifactId>
              <version>3.5.1</version>
              <executions>
                  <execution>
                      <phase>generate-sources</phase>
                      <goals>
                          <goal>run</goal>
                      </goals>
                      <configuration>
                          <protocArtifact>com.google.protobuf:protoc:3.0.0</protocArtifact>
                          <inputDirectories>
                              <include>src/main/protobuf</include>
                          </inputDirectories>
                         <outputTargets>
                              <outputTarget>
                                  <type>java</type>
                                  <outputDirectory>src/main/java</outputDirectory>
                              </outputTarget>
                              <outputTarget>
                                  <type>grpc-java</type>
                                  <outputDirectory>src/main/java</outputDirectory>
                                  <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.0.1</pluginArtifact>
                              </outputTarget>
                          </outputTargets>
                      </configuration>
                  </execution>
              </executions>
       </plugin>

I am executing it by "mvn protoc-jar:run", however it skips the grpc service stubs, only coverts "messages" to java code.

output is

[INFO] Protoc version: 3.5.1
protoc-jar: protoc version: 3.5.1, detected platform: osx-x86_64 (mac os x/x86_64)
protoc-jar: embedded: bin/3.5.1/protoc-3.5.1-osx-x86_64.exe
protoc-jar: executing: [/var/folders/9y/w8qrc__9513dv57323sjdlmw0000gn/T/protocjar320569499467403052/bin/protoc.exe, --version]
libprotoc 3.5.1
[INFO] Protoc command: /var/folders/9y/w8qrc__9513dv57323sjdlmw0000gn/T/protocjar320569499467403052/bin/protoc.exe
[INFO] Input directories:
[INFO]     /Users/dev/learn/proto-java/src/main/protobuf
[INFO] Output targets:
[INFO]     java: /Users/dev/learn/proto-java/target/generated-sources (add: main, clean: false, plugin: null, outputOptions: null)
[INFO]     Processing (java): helloworld.proto
protoc-jar: executing: [/var/folders/9y/w8qrc__9513dv57323sjdlmw0000gn/T/protocjar320569499467403052/bin/protoc.exe, -I/Users/dev/learn/proto-java/src/main/protobuf, --java_out=/Users/dev/learn/proto-java/target/generated-sources, /Users/dev/learn/proto-java/src/main/protobuf/helloworld.proto]
[INFO] Adding generated classes to classpath

I've a simple proto file defined as

syntax = "proto3";

option java_multiple_files = true;
option java_package = "-.-.-.helloworld";
option java_outer_classname = "HelloWorldProto";
option objc_class_prefix = "HLW";

package helloworld;

// The greeting service definition.
service Greeter {
    // Sends a greeting
    rpc SayHello (HelloRequest) returns (HelloReply) {}
    rpc SayHelloAgain (HelloRequest) returns (HelloReply) {}
}

// The request message containing the user's name.
message HelloRequest {
    string name = 1;
}

// The response message containing the greetings
message HelloReply {
    string message = 1;
}

I only output files generated as HelloReply, HelloReplyOrBuilder, HelloRequest, HelloRequestOrBuilder, HelloWorldProto. The Greeter Grpc service stub is missing. I am new to maven, am I missing something.

like image 866
user1064504 Avatar asked Jul 09 '18 03:07

user1064504


1 Answers

Use a maven phase ... https://maven.apache.org/ref/3.5.2/maven-core/lifecycles.html

mvn generate-sources will generate your GreeterRpc

like image 98
YaFred Avatar answered Sep 28 '22 10:09

YaFred