我想在我的 go 项目中添加一个子模块。子模块将包含一些.proto文件和一些 go 文件。我将使用 protos 使用我的 Makefile 生成 grpc-gateway 文件,它与 repo 中的 go 文件具有相同的包。包含这些 protos 的 repo 不是我的,其他人正在开发它。我不会提交这些生成的网关文件。golang 项目中的此类文件是否有任何特定结构?我应该将它们保存在 pkg 目录中吗?我的项目中当前有构建、配置、模板的三个文件夹。
2 回答
ibeautiful
TA贡献1993条经验 获得超5个赞
您可以将它们保存在pkg目录中,也许在pkg/proto.
生成的 go 文件的包名称将出现在文件的go_package属性中.proto。例如,
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"
)
波斯汪
TA贡献1811条经验 获得超4个赞
如果您想将项目依赖项保留在项目中,那么您最好将它们保留在vendor
目录中。
但通常我为此使用 go 模块。
也可能对您有用: https ://github.com/golang-standards/project-layout
- 2 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消