git - 在 go 项目中将 git 子模块保存在哪里?
问题描述
我想在我的 go 项目中添加一个子模块。
子模块将包含一些.proto
文件和一些 go 文件。我将使用 protos 使用我的 Makefile 生成 grpc-gateway 文件,它与 repo 中的 go 文件具有相同的包。包含这些 protos 的 repo 不是我的,其他人正在开发它。我不会提交这些生成的网关文件。
golang 项目中的此类文件是否有任何特定结构?我应该将它们保存在 pkg 目录中吗?
我的项目中当前有构建、配置、模板的三个文件夹。
解决方案
您可以将它们保存在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"
)
推荐阅读
- spring - Spring Boot 是否像 JPA(AbstractRoutingDataSource) 那样对 jdbctemplate 的多租户提供开箱即用的支持?
- r - R-devel 带有来自摇杆的消毒剂
- typescript - 是否可以在具有泛型参数的类型上使用 infer 而不会导致未知数?
- reactjs - 反应上下文:消费者不会从提供者触发处理程序
- java - 在 kotlin 中使用 WebViewActivity.EXTRA_URL
- python - PandasDataFrame 到 json
- tableau-api - 基于 ID 和日期顺序的累计销售额
- python - 通过 iloc 切片设置数据框的列是否安全?
- c# - 使用 C# 在 Windows 10 上查找当前用户登录时间
- javascript - 云功能速率限制器,不返回数据