如何添加自动生成的go依赖项?
我有一个原始存储库,它的根目录中只有一个go文件,其中包含以下内容:
//go:generate ./scripts/generate_go_sources.sh
package protobuf上述脚本遍历"message/“子文件夹中的所有.proto文件,并生成围棋源。
之后,存储库包含了许多子包,如
ptyes/package1/file.go
ptyes/package2/file.go我不想将这些文件签入到版本控制中。
如何在go dep中使用这个存储库?
我正试图切换到go dep进行依赖关系管理,但我无法说服它下载这个存储库并执行"go generate“。
Solving failure: No versions of github.com/company/protobuf met constraints:
master: Could not introduce github.com/company/protobuf@master, as it is not allowed by constraint vendoring from project github.com/company/myProject.
develop: Could not introduce github.com/company/protobuf@develop, as it is not allowed by constraint vendoring from project github.com/company/myProject.
vendoring: Could not introduce github.com/company/protobuf@vendoring due to multiple problematic subpackages:
Subpackage github.com/company/protobuf/ptypes/package1 is missing. (Package is required by (root).)
Subpackage github.com/company/protobuf/ptypes/package2 is missing. Package is required by: (root)go dep会发现正确的存储库(望用-分支),但会丢弃它,因为它找不到所需的子包。它们只在根包中调用"go generate“一次。
发布于 2018-02-03 10:14:35
来自关于迁移的godep文档
dep假定所有生成的代码都存在,并已提交给源代码。
因此,做我想做的事似乎是不可能的。解决方案是创建一个包含生成源的存储库,并确保这些源自动生成并与实际的源数据保持同步(在我的示例中是原始的*.proto文件)。
由于我不能将生成的源与源数据放在同一个存储库中,因此有必要完全同步这两个存储库(相同的分支、相同的标记),以便与只包含声明的实际存储库相比,go dep使用的版本在某种程度上是有用的。
https://stackoverflow.com/questions/48578729
复制相似问题