grpc-java 源码环境的构建比较繁琐,翻了很多博客,也没有详细的步骤。
Clone
1. git clone https://github.com/grpc/grpc-java.git
2. idea 打开grpc-java工程
compile
1. java version
java 版本需要 1.8 以上
2. gradle.properties
grpc-java 有一个用于 protoc 的 C++ 代码生成插件。由于许多 Java 开发人员没有安装 C 编译器,也不需要运行或修改 codegen,因此构建可以跳过它。要跳过,请创建文件
grpc-java 的某些部分依赖于 Android。由于许多 Java 开发人员没有安装 Android SDK,也不需要运行或修改 Android 组件,因此构建可以跳过它。要跳过,请创建文件
在grpc-java的根目录下新建一个gradle.properties 文件。
3. gradle
运行 $ ./gradlew build
构建 grpc-java。
运行:$ ./gradlew publishToMavenLocal
将依赖安装到 Maven 本地仓库中。
Build examples
运行 $ ./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版本号替换成已有的正式版本。
正式版本: https://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。