我想在我的 go 项目中添加一个子模块。
子模块将包含一些 .proto
文件和一些 go 文件。我将使用 protos 通过我的 Makefile 生成 grpc-gateway 文件,它与 repo 中的 go 文件具有相同的包。包含这些原型(prototype)的 repo 不是我的,其他人正在开发它。我不会提交生成的这些网关文件。
golang项目中这样的文件有没有特定的结构?我应该将它们保存在 pkg 目录中吗?
我的项目中目前有 build、configs、templates 三个文件夹。
最佳答案
您可以将它们保存在 pkg
目录中,也许在 pkg/proto
中。
生成的 go 文件的包名称将出现在 .proto
文件的 go_package
属性中。例如,
option go_package = "external/api/messages";
那么编译之后,go文件里面的包名就是
package messages
这是文件夹结构
$ tree
.
`-- pkg
`-- proto
`-- messages
|-- messages.pb.go
`-- messages.proto
为了导入它,你必须更新你的 go.mod
文件
replace external/api v0.0.0 => ./pkg/proto
之后,您可以使用
导入它import (
"external/api/messages"
)
关于git - 将 git 子模块保存在 go 项目中的什么地方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60275144/