首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >去,然后去生成

去,然后去生成
EN

Stack Overflow用户
提问于 2018-02-02 08:35:51
回答 1查看 804关注 0票数 0

如何添加自动生成的go依赖项?

我有一个原始存储库,它的根目录中只有一个go文件,其中包含以下内容:

代码语言:javascript
复制
//go:generate ./scripts/generate_go_sources.sh    
package protobuf

上述脚本遍历"message/“子文件夹中的所有.proto文件,并生成围棋源。

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

代码语言:javascript
复制
ptyes/package1/file.go
ptyes/package2/file.go

我不想将这些文件签入到版本控制中。

如何在go dep中使用这个存储库?

我正试图切换到go dep进行依赖关系管理,但我无法说服它下载这个存储库并执行"go generate“。

代码语言:javascript
复制
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“一次。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-03 10:14:35

来自关于迁移的godep文档

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

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

由于我不能将生成的源与源数据放在同一个存储库中,因此有必要完全同步这两个存储库(相同的分支、相同的标记),以便与只包含声明的实际存储库相比,go dep使用的版本在某种程度上是有用的。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48578729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档