背景:
mvn执行
mvn clean package -Dmaven.test.skip=true
报错Cannot run program "protoc"
1. linux机器 解决办法:
安装protobuf,系统是ubuntu 16.04,代码中用的protobuf是2.5.0版本。
请选择自己需要的版本下载https://github.com/google/protobuf/releases (老版本往下拉页面)
下载好protobuf-2.5.0.tar.gz tar包执行
cd ~/Downloads/ tar zxvf protobuf-2.5.0.tar.gz cd protobuf-2.5.0 ./configure --prefix=/usr make make check sudo make install
验证protoc version
# protoc --version libprotoc 2.5.0
再次执行mvn clean package -Dmaven.test.skip=true即可编译。
2. windows机器 解决办法:
下载protobuf
请选择自己需要的版本下载https://github.com/google/protobuf/releases (老版本往下拉页面)
下载2个包:
protobuf-2.5.0.tar.gz -- Windows binary -> protoc.exe 编译使用
protobuf-2.5.0.tar.gz -- C++, Java, Python -> 代码
编译过程如下:
(1) 解压protobuf-2.5.0.tar.gz 到 C:\software\protobuf-2.5.0
(2) 解压protoc-2.5.0-win32.zip, 拷贝protoc.exe 到C:\protobuf-2.5.0\java\src
(3) 运行cmd 到C:\protobuf-2.5.0\java 执行 mvn test 和 mvn install
成功之后执行protoc --version检查protoc是否安装成功。
最后将C:\protobuf-2.5.0\java\src 加入系统环境变量Path
参考:
https://developers.google.com/api-client-library/java/google-http-java-client/contribute
https://github.com/google/protobuf/tree/master/java