以前配置为使用的存储库GOPATH现在配置为模块。一切都很好,而且更好。然而,protoc 正确地(!)为结构中的存储库中定义的 protobuf 生成 Golang 代码,github.com/path/to/repo/protos而我现在更喜欢在GOPATH. 我正在推动他们解决这个问题。有更好的解决方案吗?
我有一个 GitHub 存储库。为了讨论方便,我们称之为github.com/acme/toolbox。在子目录中,我有 protobuf 文件,其中包括:
package acme.toolbox.v1;
option go_package = "github.com/acme/toolbox/protos";
当我GOPATH'ing 时,一切都很好,并且protoc会生成 Golang 绑定,$GOPATH/src/github.com/acme/toolbox/protos并且我的代码 importpb "github.com/acme/toolbox/protos"可以工作。
迁移到Go Modules并非一帆风顺,但好处大于成本,我正在为自己和代码提供面向未来的保障。
我的问题是,我不知道如何protoc在我的任意克隆之外生成 Golang 绑定GOPATH。
我在生成文件后移动它们,但这感觉......不优雅:
cd ${TOOLBOX}
protoc \
--proto_path=./protos \
--go_out=plugins=grpc:/go/src
./protos/*.proto
mv ${GOPATH}/src/github.com/acme/toolbox/protos/*.go ${TOOLBOX}/protos
有更好的解决方案吗?
慕的地8271018
相关分类