在maven中使用grpc

lpwwtiir  于 2023-10-17  发布在  Maven
关注(0)|答案(2)|浏览(166)

有人知道如何在maven中编译grpc应用程序的 *.proto文件吗?
下面是我在maven -中编译protobuf的方法(老方法,使用安装的protoc编译器,摘录自pom.xml):

<build>
    <plugins>

      <!-- protocol buffers runner, requires protoc -->
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>generate-protobuf-sources</id>
            <phase>generate-sources</phase>
            <configuration>
              <tasks>
                <mkdir dir="target/generated-sources/java" />

                <exec executable="protoc">
                  <arg value="--java_out=target/generated-sources/java" />
                  <arg value="src/main/protobuf/hello.proto" />
                </exec>
              </tasks>
              <sourceRoot>target/generated-sources/java</sourceRoot>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

我想知道grpc是否有类似的可能。据我所知,我需要以某种方式连接protoc-gen-grpc-java插件与protobuf,但我不知道如何做到这一点。
更新:对于那些感兴趣的人,我使用maven on github创建了一个完整的客户端-服务器应用程序示例。

j9per5c4

j9per5c41#

我强烈推荐使用grpc-java README中描述的protobuf-maven-plugin
如果你真的想手动完成,你可以从Maven Central下载protoc-gen-grpc-java,并为protoc的exec添加另一个:
--plugin=protoc-gen-grpc-java=path/to/protoc-gen-grpc-java

t40tm48m

t40tm48m2#

protoc-jar-maven-plugin不需要安装protoc编译器,不像protobuf-maven-plugin。
将此添加到您的插件:

<plugin>
    <groupId>com.github.os72</groupId>
    <artifactId>protoc-jar-maven-plugin</artifactId>
    <version>3.11.4</version>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

它使用跨平台的protoc-jar来生成protobuf。

相关问题