tl;dr以前配置为使用的 repoGOPATH
现在配置为模块。一切都好,越来越好。但是,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
,一切都很好,并且protoc
会在其中生成 Golang 绑定,$GOPATH/src/github.com/acme/toolbox/protos
并且我的代码 importingpb "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
有更好的解决方案吗?