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 version
java 版本需要 1.8 以上
2.2 gradle.properties
grpc-java 有一個用於 protoc 的 C++ 程式碼生成插件。由於許多 Java 開發人員沒有安裝 C 編譯器,也不需要運行或修改 codegen,因此構建可以跳過它。要跳過,請創建文件
grpc-java 的某些部分依賴於 Android。由於許多 Java 開發人員沒有安裝 Android SDK,也不需要運行或修改 Android 組件,因此構建可以跳過它。要跳過,請創建文件
在grpc-java的根目錄下新建一個gradle.properties 文件。

2.3 gradle
運行 $ ./gradlew build
構建 grpc-java。

運行:$ ./gradlew publishToMavenLocal
將依賴安裝到 Maven 本地倉庫中。
3. 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版本號替換成已有的正式版本。
正式版本: //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。