在GoLang中出售第三方库(mgo.v2)时出错

时间:2015-11-09 14:20:28

标签: go mgo

我正在尝试使用当前代码库mgo.v2的本地副本。 https://gopkg.in/mgo.v2 表示要使用go get gopkg.in/mgo.v2进行安装。我从https://github.com/go-mgo/mgo/tree/v2分叉并尝试从go获取分叉repo从git 安装它,但它改变了包结构(从/src/gopkg.in - > / src /更改github.com)它没有说

src/github.com/eateshk/mgo.v2/error.go:4: "ERROR: the correct import path is gopkg.in/mgo.v2 ... " evaluated but not used

我理解错误,但是解决方法是什么?

1 个答案:

答案 0 :(得分:1)

这是分叉包裹时的常见问题。 Canonical或“vanity”导入要求代码存在于指定的路径中,否则它们将无法编译。唯一的解决方案是删除存在于某处的// import "gopkg.in/whatever"注释。

您的方法也存在其他问题。除非您重写它们,否则其存储库中的导入将解析回原始存储库并导致各种混淆。

相反,我建议采用另一种方法。 唯一这个可以存放在磁盘上而不会导致问题的地方是$GOPATH/src/gopkg.in/mgo.v2。任何其他事情都会导致问题。所以:

go get gopkg.in/mgo.v2
cd $GOPATH/src/gopkg.in/mgo.v2
git remote add mine your_git_fork

现在,您可以从origin提取上游更改并将更改推送到mine。这感觉有点奇怪,但它确实是通过重写东西而不会造成大量额外痛苦的唯一方法。