grpc的编译

  |   0 评论   |   19 浏览

背景

在arm平台上,我们编译grpc时,会提示:

[ERROR] Failed to execute goal org.xolstice.maven.plugins:protobuf-maven-plugin:0.5.0:compile-custom (default) on project nls-cloud-realtime-proto: Missing:
[ERROR] ----------
[ERROR] 1) io.grpc:protoc-gen-grpc-java:exe:linux-aarch_64:1.9.0
[ERROR]
[ERROR]   Try downloading the file manually from the project website.
[ERROR]
[ERROR]   Then, install it using the command:
[ERROR]       mvn install:install-file -DgroupId=io.grpc -DartifactId=protoc-gen-grpc-java -Dversion=1.9.0 -Dclassifier=linux-aarch_64 -Dpackaging=exe -Dfile=/path/to/file
[ERROR]
[ERROR]   Alternatively, if you host your own repository you can deploy the file there:
[ERROR]       mvn deploy:deploy-file -DgroupId=io.grpc -DartifactId=protoc-gen-grpc-java -Dversion=1.9.0 -Dclassifier=linux-aarch_64 -Dpackaging=exe -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]

怎么办呢?解决方法就是自己编译一个 arm 平台下的 protoc-gen-grpc-java.exe 文件。

编译

编译protobuf

先安装包:

yum install autoconf automake libtool libsysfs-dev make

再编译

$ git clone https://github.com/google/protobuf.git
$ cd protobuf
$ git checkout v3.7.1
$ ./autogen.sh
$ ./configure --disable-shared
$ make
$ make check
$ sudo make install

编译grpc-java编译器

安装包

yum install java-1.8.0-openjdk java-1.8.0-openjdk-src java-1.8.0-openjdk-devel
yum install libstdc++-static

下载

git clone  https://github.com/grpc/grpc-java.git

# 切换到对应的分支 v1.9.0, 根据自己情况选择
git checkout v1.9.0

编译

cd grpc-java/compiler
../gradlew build
../gradlew linkJava_pluginExecutable

得到文件

grpc-java/compiler/build/artifacts/java_plugin/protoc-gen-grpc-java.exe

安装编译器

mvn install:install-file -DgroupId=io.grpc -DartifactId=protoc-gen-grpc-java -Dversion=1.9.0 -Dclassifier=linux-aarch_64 -Dpackaging=exe -Dfile=/path/to/protoc-gen-grpc-java.exe

参考

评论

发表评论

validate