有人知道如何在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创建了一个完整的客户端-服务器应用程序示例。
2条答案
按热度按时间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
t40tm48m2#
protoc-jar-maven-plugin不需要安装protoc编译器,不像protobuf-maven-plugin。
将此添加到您的插件:
它使用跨平台的protoc-jar来生成protobuf。