9

有谁知道如何在 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 连接起来,但我不知道该怎么做。

更新:对于那些感兴趣的人,我在 github 上使用 maven 创建了一个完整的客户端-服务器应用程序示例。

4

1 回答 1

12

我强烈建议protobuf-maven-plugin按照 grpc-java README中的说明使用。

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

于 2016-03-11T23:52:46.337 回答