生成 protobuf 文件时报错:

1
2
github.com/mwitkow/go-proto-validators/validator.proto: File not found.
Import "github.com/mwitkow/go-proto-validators/validator.proto" was not found or had errors.

解决问题分两步

  1. 拷贝 https://github.com/protocolbuffers/protobuf 这个文件中的 src 下的 google/protobuf 目录到 $GOPATH/src
  2. github.com/mwitkow/go-proto-validators 这个包也拷贝到 $GOPATH/src 下, 目录结构:
1
2
3
4
5
-gopath
      -src
          -google
                  -protobuf
                        -descriptor.proto

之后执行命令时带上一个--proto_path=${GOPATH}/src 即可, 例如:

1
2
3
4
5
6
7
protoc  \
  --proto_path=${GOPATH}/src \
  --proto_path=./proto \
  --go_out=. \
  --govalidators_out=. \
  --go-grpc_out=require_unimplemented_servers=false,paths=source_relative:. \
  ./proto/*.proto

参考链接