我有一个位于我的文件系统($GOPATH不在bitbucket.org/me/awesome.
~/awesome> tree
.
├── main.go
├── go.mod
├── go.sum
├── subpackageA
│ └── main.go
我的go.mod样子:
module bitbucket.org/me/awesome
require (
... # lots of external dependencies
)
replace bitbucket.org/me/awesome => ./
在main.go我的顶级目录中,我调用如下子包:
import "bitbucket.org/me/awesome/subpackageA"
这一切似乎都很正常。go get作品。但是,当我将整个存储库克隆到其他地方(比如在 Docker 映像中)并第一次运行go get时,我会收到如下错误:
package bitbucket.org/me/awesome/subpackageA: https://api.bitbucket.org/2.0/repositories/me/awesome?fields=scm: 403 Forbidden,
这意味着它没有使用包的本地文件系统版本,即使我用文件中的指令replace告诉go.mod它。
我究竟做错了什么?如何确保从文件系统使用子包,而不是尝试从 Internet 获取?