在 maven 中使用 grpc

Using grpc in maven

有谁知道如何在 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.

创建了一个完整的客户端-服务器应用程序示例

我强烈建议使用 protobuf-maven-plugin,如 grpc-java README.

中所述

如果你真的想手动做,你可以从Maven Central下载protoc-gen-grpc-java并为protoc的exec添加另一个:
--plugin=protoc-gen-grpc-java=path/to/protoc-gen-grpc-java