【发布时间】:2021-08-18 18:52:47
【问题描述】:
我一直在尝试在命令下运行
protoc -I ./interfaces/ -I ${GOPATH}/pkg/mod/github.com/envoyproxy/protoc-gen-validate@v0.1.0 -I ${GOPATH}/pkg/mod/github.com/gogo/protobuf@v1.3.2 -I ${GOPATH}pkg/mod/github.com/x --gogo_out=. --go_out="plugins=grpc:./generated" --validate_out="lang=go:./generated" ./interfaces/test_server/*.proto
遇到错误
github.com/x/customValidation/validators.proto:找不到文件。 test_server/test.proto:5:1:未找到导入“github.com/x/customValidation/validators.proto”或有错误。
我可以看到 proto 文件在这个位置 -> github.com/x/customValidation/validators.proto 并在本地保存在 -> pkg\mod\github.com\x\custom!validation@v0.0.0-20210817213416-5eb0b8804c6f
我也尝试过使用 --proto_path 命令,但仍然收到与未找到 proto 文件相同的错误
protoc \
--proto_path=${GOPATH}/src \
--proto_path=${GOPATH}/pkg/mod/github.com/gogo/protobuf@v1.3.2 \
--proto_path=${GOPATH}/pkg/mod/github.com/envoyproxy/protoc-gen-validate@v0.1.0 \
--proto_path=${GOPATH}pkg/mod/github.com/x \
--proto_path=. --gogo_out=. --govalidators_out=gogoimport=true:. --go_out="plugins=grpc:./generated" --validate_out="lang=go:./generated" ./interfaces/test_server/*.proto
【问题讨论】:
-
要编译的protobufs(即
./interfaces/test_server/*.proto)也必须出现在proto_paths之一中。我认为您可能也需要使用绝对路径,即${PWD}/interfaces而不是./interfaces。所以,你会想要... --proto_path=${PWD}/interfaces/test_server ... ${PWD}/interfaces/test_server/*.proto
标签: go protocol-buffers proto grpc-go