首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建并运行grpc-java示例而不使用gradle。

构建并运行grpc-java示例而不使用gradle。
EN

Stack Overflow用户
提问于 2015-08-12 13:48:58
回答 3查看 3.1K关注 0票数 3

我试着用grpc做例子。如果我使用gradle,这确实很容易,但是,我要将grpc集成到使用另一个构建系统的项目中。我想知道如何只使用protoc、javac和java编译和运行示例。我能够从.proto源代码生成java源代码,但编译生成的java源代码却没有成功。

我尝试了1000个组合(不同的类空间),但没有任何效果。

代码语言:javascript
复制
> javac RouteGuideGrpc.java

< RouteGuideGrpc.java:3: error: package io.grpc.stub does not exist
import static io.grpc.stub.ClientCalls.asyncUnaryCall;

(省略了其他99个编译错误)

有人能显示出一系列的命令来工作吗?谢谢。

Upd:我在Linux上做这个。

Upd:我在使用SBT,但这真的不重要。我真正想了解的是如何使用javac编译生成的grpc代码。我确信我在类路径中有grpc-core、grpc、grpc-protobuf和grpc-stub (实际上,在这一点上不确定.)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-14 12:00:36

好吧,我解决了编译时的问题。

最后,我将println语句插入到grpc附带的build.gradle文件中,以查看编译这些示例时使用的实际类路径。

结果发现,grpc的版本为0.9.0,而在我的sbt构建中,我指的是0.7.2。

就在今天,0.8.0版的库被放到了maven存储库中,当我将版本从0.7.2改为0.8.0时,一切都如预期的那样工作。

票数 1
EN

Stack Overflow用户

发布于 2016-09-30 16:12:16

实际上,我自己也遇到了一些问题,试图从Gradle迁移到SBT。

首先,您应该利用原生质体插件为您编译.proto文件。确保:

  • 设置protoc的路径和版本:

代码语言:javascript
复制
version in PB.protobufConfig := "3.0.0"
protoc in PB.protobufConfig := PATH_PROTOC
  • 如果需要,请设置.proto文件的位置(默认为src/main/protobuf):

代码语言:javascript
复制
sourceDirectory in PB.protobufConfig := baseDirectory.value / "src" / "main" / "proto"
  • 最后,设置grpc-java使用的额外选项。第一个选项设置protoc-gen-grpc-java插件bin的路径;第二个选项将grpc-java的输出路径设置为与sbt-protobuf相同的路径。

代码语言:javascript
复制
protocOptions in PB.protobufConfig ++= Seq(
    "--plugin=protoc-gen-grpc-java=" + PATH_GRPC_JAVA_PLUGIN,
    "--grpc-java_out=" + baseDirectory.value + "/target/src_managed/main/compiled_protobuf")

最后,我把所有这些都整理好了。就是这里,希望它能帮上忙!

票数 2
EN

Stack Overflow用户

发布于 2015-08-12 14:36:14

io.grpc.stub是grpc工件的一部分。要构建代码生成的组件,至少需要类路径中的protobuf-javagrpc-stubgrpc-protobufgrpc-core。根据编译的方式,您可能还需要任何protobuf生成的类(grpc生成的存根取决于原型生成的原型)。

编译器目录中有手动运行代码生成器的文档,但是它不包括运行javac

如果继续出现问题,请反复检查grpc编译器和protobuf-java是否有相同的版本,而protobuf grpc-java和grpc JARs是否有相同的版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31967159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档