Go 中的库依赖

Library dependencies in Go

我在 Go 中创建了一个 library/package,一致认为只有应用程序在其项目中包含一个 vendor 文件夹,而库则没有。

所以现在我将 my package 包含在另一个(govendor'ed)项目中并且一切正常,直到它到达 Jenkins 并且它必须使用其本地资源,其中 2 个依赖项失踪了。

我的项目自述文件说您需要做的就是go get我的项目,您就完成了。但如果您使用的是政府供应,情况就不是这样了。

我的图书馆应该采用什么方法?这可以解决吗,或者这 'problem' 只是最终用户必须解决的问题,因为他们使用 govendor?

我想这更像是一个意见问题,但我会分享我使用的内容。

我使用 git subtree 在我的树中销售子回购然后添加一个 //go:generate 行稍后更新它,例如:

➜ git subtree add --prefix vendor/xxx/yyy/zzz https://github.com/xxx/yyy/zzz master --squash

然后将 //go:generate git subtree pull --prefix vendor/xxx/yyy/zzz https://github.com/xxx/yyy/zzz master --squash 添加到我的库文件之一。

在我发布之前 运行 go generate

无需任何外部工具即可解决销售问题。

实例:https://github.com/OneOfOne/xxhash/blob/master/xxhash_cgo.go