Go mod:无法检索私有存储库的子模块

问题描述

我有3个go项目。项目A依赖项目B的子模块和项目C的模块 例如:

gitlab.com/myorg/myGroup/projectB/contract
gitlab.com/myorg/myGroup/projectC

当go mod尝试下载模块时,模块C已正确下载,但模块B失败:

get "gitlab.com/myorg/myGroup/projectB/contract": verifying non-authoritative Meta tag
go: gitlab.com/myorg/myGroup/projectB/[email protected]: reading gitlab.com/myorg/myGroup/projectB/contract/projectB/contract/go.mod at revision projectB/contract/v0.1.0: unkNown revision projectB/contract/v0.1.0

我们看到go正在尝试阅读:

gitlab.com/myorg/myGroup/projectB/contract/**projectB/contract**/go.mod

代替

gitlab.com/myorg/myGroup/projectB/contract/go.mod 

我已经在存储库中创建了标签v0.1.0和contract / v0.1.0。

有什么想法为什么不能下载模块?

Ps:我已经设置了GOPRIVATE =“ gitlab.com/myorg”

解决方法

最近在go 1.13中进入了这个范围,对我们有用的是

  • GO111MODULE=on
  • GOSUMDB=off
  • 设置GOPRIVATE
  • 最后,在github git config --global url."https://${TOKEN}@github.com".insteadOf "https://github.com"上使用个人访问令牌