如何使用gRPC进行高效的网络通信?
- 内容介绍
- 文章标签
- 相关推荐
本文共计635个文字,预计阅读时间需要3分钟。
在构建`grpc-java`源码环境时,遇到了一些困难。虽然查阅了众多博客,但缺乏详细的步骤指导,导致源码构建失败。以下是简化后的构建步骤:
1. 克隆源码 1.1 使用`git clone`命令克隆仓库:`git clone https://github.com/grpc/grpc-java.git` 1.2 在IDEA中打开`grpc-java`项目
2. 编译 2.1 运行编译命令:`./gradlew build`
通过以上步骤,可以尝试构建`grpc-java`源码环境。
grpc-java 源码环境的构建坑比较多,翻了很多博客,也没有详细的步骤,但源码都构建不起来,怎能学透彻。
1. Clone 1.1 git clone github.com/grpc/grpc-java.git 1.2 idea 打开grpc-java工程 2.compile 2.1 java versionjava 版本需要 1.8 以上
2.2 gradle.propertiesgrpc-java 有一个用于 protoc 的 C++ 代码生成插件。由于许多 Java 开发人员没有安装 C 编译器,也不需要运行或修改 codegen,因此构建可以跳过它。要跳过,请创建文件
/gradle.properties并添加skipCodegen=true.
grpc-java 的某些部分依赖于 Android。由于许多 Java 开发人员没有安装 Android SDK,也不需要运行或修改 Android 组件,因此构建可以跳过它。要跳过,请创建文件
/gradle.properties并添加skipAndroid=true.
在grpc-java的根目录下新建一个gradle.properties 文件。
2.3 gradle运行 $ ./gradlew build 构建 grpc-java。
运行:$ ./gradlew publishToMavenLocal 将依赖安装到 Maven 本地仓库中。
运行 $ ./gradlew build 构建 grpc-java/examples。
Execution failed for task ':generateProto'.
> Could not resolve all files for configuration ':protobufToolsLocator_grpc'.
> Could not find io.grpc:protoc-gen-grpc-java:1.46.1-SNAPSHOT.
对于这个问题,主要是因为io.grpc:protoc-gen-grpc-java:1.46.1-SNAPSHOT. 这个jar没有生成,在我们本地的仓库中没找到。打包生成的方式,我还没找到。
一个取巧的解决方法是将example/build.gradle中的这个SNAPSHOT版本号替换成已有的正式版本。
正式版本: repo1.maven.org/maven2/io/grpc/protoc-gen-grpc-java/
从中找到跟你项目的grpcVersion 接近的正式版本。
grpc { artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}" }
将${grpcVersion} 替换成你跟SNAPSHOT版本相近的正式版本。
如:grpc { artifact = "io.grpc:protoc-gen-grpc-java:1.46.0" }
然后再重新运行 $ ./gradlew build 构建 grpc-java/examples。
本文共计635个文字,预计阅读时间需要3分钟。
在构建`grpc-java`源码环境时,遇到了一些困难。虽然查阅了众多博客,但缺乏详细的步骤指导,导致源码构建失败。以下是简化后的构建步骤:
1. 克隆源码 1.1 使用`git clone`命令克隆仓库:`git clone https://github.com/grpc/grpc-java.git` 1.2 在IDEA中打开`grpc-java`项目
2. 编译 2.1 运行编译命令:`./gradlew build`
通过以上步骤,可以尝试构建`grpc-java`源码环境。
grpc-java 源码环境的构建坑比较多,翻了很多博客,也没有详细的步骤,但源码都构建不起来,怎能学透彻。
1. Clone 1.1 git clone github.com/grpc/grpc-java.git 1.2 idea 打开grpc-java工程 2.compile 2.1 java versionjava 版本需要 1.8 以上
2.2 gradle.propertiesgrpc-java 有一个用于 protoc 的 C++ 代码生成插件。由于许多 Java 开发人员没有安装 C 编译器,也不需要运行或修改 codegen,因此构建可以跳过它。要跳过,请创建文件
/gradle.properties并添加skipCodegen=true.
grpc-java 的某些部分依赖于 Android。由于许多 Java 开发人员没有安装 Android SDK,也不需要运行或修改 Android 组件,因此构建可以跳过它。要跳过,请创建文件
/gradle.properties并添加skipAndroid=true.
在grpc-java的根目录下新建一个gradle.properties 文件。
2.3 gradle运行 $ ./gradlew build 构建 grpc-java。
运行:$ ./gradlew publishToMavenLocal 将依赖安装到 Maven 本地仓库中。
运行 $ ./gradlew build 构建 grpc-java/examples。
Execution failed for task ':generateProto'.
> Could not resolve all files for configuration ':protobufToolsLocator_grpc'.
> Could not find io.grpc:protoc-gen-grpc-java:1.46.1-SNAPSHOT.
对于这个问题,主要是因为io.grpc:protoc-gen-grpc-java:1.46.1-SNAPSHOT. 这个jar没有生成,在我们本地的仓库中没找到。打包生成的方式,我还没找到。
一个取巧的解决方法是将example/build.gradle中的这个SNAPSHOT版本号替换成已有的正式版本。
正式版本: repo1.maven.org/maven2/io/grpc/protoc-gen-grpc-java/
从中找到跟你项目的grpcVersion 接近的正式版本。
grpc { artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}" }
将${grpcVersion} 替换成你跟SNAPSHOT版本相近的正式版本。
如:grpc { artifact = "io.grpc:protoc-gen-grpc-java:1.46.0" }
然后再重新运行 $ ./gradlew build 构建 grpc-java/examples。

