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
我在 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