通过导入基于protobuf生成go文件

问题描述

我有两个git存储库:

常见 此存储库包含protobuf文件(.proto),应通过git子模块init从其他供应商存储库中获取这些文件。还有带有指令的go文件:// go:generate protoc --proto_path = a / xxx --go_out =。 --go_opt = paths = source_relative a / xxx / b.proto

主要 该存储库包含主项目,该项目从common导入包。然后我调用git子模块更新--init并进行生成生成后,我可以看到日志:go:查找github.xxx.com/xxx最新

,但是主go文件显示了一些问题: 构建github.xxx.com/main:无法加载github.xxx.com/xxx/proto:找到模块github.xxx.com/common@latest,但不包含包github.xxx.com/xxx/proto

似乎go generate命令不会生成原始文件。我想如果我导入一些东西,那么这些文件就在缓存​​中。我不确定我的方法是否可行。

您能告诉我该解决方案是否可行或应该更改什么。

解决方法

好的,我的解决方案是这样的项目布局:https://github.com/golang-standards/project-layout

我在cmd文件夹中还有更多main.go文件。这样,我只有一个模块,并且在模块内部,我可以有不同的应用。我认为这是非常不错的解决方案。