Git 去dep和去生成 如何添加自动生成的go依赖项?

Git 去dep和去生成 如何添加自动生成的go依赖项?,git,go,dependency-management,godeps,Git,Go,Dependency Management,Godeps,我有一个protobuf存储库,其根目录中有一个go文件,其中包含以下内容: //go:generate ./scripts/generate_go_sources.sh package protobuf 上述脚本将遍历“message/”子文件夹中的所有.proto文件,并生成go源 之后,存储库包含许多子包,如 ptyes/package1/file.go ptyes/package2/file.go 我不想将这些文件签入版本控制 如何将此存储库与go dep一起使用? 我试图切

我有一个protobuf存储库,其根目录中有一个go文件,其中包含以下内容:

//go:generate ./scripts/generate_go_sources.sh    
package protobuf
上述脚本将遍历“message/”子文件夹中的所有
.proto
文件,并生成go源

之后,存储库包含许多子包,如

ptyes/package1/file.go
ptyes/package2/file.go
我不想将这些文件签入版本控制


如何将此存储库与go dep一起使用? 我试图切换到go dep进行依赖关系管理,但我无法说服它下载此存储库并执行“go generate”


go dep发现了正确的存储库(vendoring分支),但由于找不到所需的子包,因此放弃了它。只有在根包中调用了“go generate”之后,它们才会出现在这里。

来自godep文档,关于:

dep假定所有生成的代码都存在,并且已提交给 消息来源

因此,似乎不可能做我想做的事。解决方案是创建一个包含生成的源的存储库,并确保自动生成这些源并与实际源数据(在我的示例中是原始*.proto文件)保持同步


由于我无法将生成的源与源数据放在同一个存储库中,因此有必要完全同步这两个存储库(相同的分支、相同的标记),以便go-dep使用的版本在与仅包含声明的实际存储库进行比较时会有所帮助

“如何将此存储库与go-dep一起使用?”--您不需要。go-dep和go-generate是不相关的工具。让
go-dep
处理生成的文件的唯一方法是将它们提交到版本控制。为什么不想这样做?@Flimzy protobuf文件也被其他语言(Java)使用,因此我无法在该存储库中提交go源代码-我需要一个单独的存储库,将protobuf定义作为子模块。每次更改protobuf文件时,也需要有人更新源代码存储库。是的,这就是生成的文件的性质。幸运的是,CI脚本可以非常轻松地实施这一点(如果您愿意,甚至可以将其自动化)。
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)