В моей файловой системе (не в $GOPATH
) есть пакет go, называемый 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
.
Что я делаю не так?Как я могу убедиться, что подпакеты используются из файловой системы вместо попыток получить их из Интернета?