前几天因为一些原因升级了一下本地的protoc-gen-go的版本,结果今天在项目中,一直使用的是新版本的protoc,编译出来的和项目的pb.go不统一。
最开始以为是go.mod文件里指定的版本问题。
go.mod
module test
go 1.12
require (
...
github.com/golang/protobuf v1.3.5
...
)
经常使用protoc编译之后,go.mod就自动更新成v1.4.2的版本了。
试着把本地的GOPATH/pkg下面自动下下来的1.4.2的包删掉,然后把go.mod强制改成v1.3.5,还是不可以。
最后上protobuf的github主页,简单看了一下安装说明。一条信息提示了我:
protobuf安装说明
按照主页说明,在本地新建一个.sh文件,然后运行.sh文件,成功回滚到了指定的版本,问题顺利解决。
GIT_TAG="v1.3.5" # change as needed
go get -d -u github.com/golang/protobuf/protoc-gen-go
git -C "$(go env GOPATH)"/src/github.com/golang/protobuf checkout $GIT_TAG
go install github.com/golang/protobuf/protoc-gen-go
网友评论