为了账号安全,请及时绑定邮箱和手机立即绑定

在 go 项目中将 git 子模块保存在哪里?

在 go 项目中将 git 子模块保存在哪里?

Go
慕的地6264312 2022-05-18 13:42:15
我想在我的 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"

)


查看完整回答
反对 回复 2022-05-18
?
波斯汪

TA贡献1811条经验 获得超4个赞

如果您想将项目依赖项保留在项目中,那么您最好将它们保留在vendor目录中。

但通常我为此使用 go 模块。

也可能对您有用: https ://github.com/golang-standards/project-layout


查看完整回答
反对 回复 2022-05-18
  • 2 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信