gpt4 book ai didi

java - 在没有 gradle 的情况下构建和运行 grpc-java 示例

转载 作者:行者123 更新时间:2023-11-29 05:01:30 27 4
gpt4 key购买 nike

我正在尝试从 grpc-java 中创建示例。如果我使用 gradle 确实很容易,但是,我将 grpc 集成到使用另一个构建系统的项目中。我想知道如何仅使用 protoc、javac 和 java 来编译和运行示例。我能够从 .proto 源代码生成 java 源代码,但编译生成的 java 源代码时运气不好。

我尝试了 1000 种组合(不同的类路径),但没有任何效果。

> javac RouteGuideGrpc.java

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

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

谁能展示一系列可行的命令?谢谢。

更新:我正在 Linux 上执行此操作。

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

最佳答案

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

首先你应该利用sbt-protobuf为您编译 .proto 文件的插件。确保:

  • 设置您的协议(protocol)路径版本:

version in PB.protobufConfig := "3.0.0"
protoc in PB.protobufConfig := PATH_PROTOC
  • 如果需要,设置您的 .proto 文件的位置(默认为 src/main/protobuf):

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

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")

我最终建立了一个存储库,其中包含所有这些内容。 Here it is ,希望对您有所帮助!

关于java - 在没有 gradle 的情况下构建和运行 grpc-java 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31967159/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com