golang: Как исправить import lookup disabled by -mod=vendor?
взял за пример вот это https://github.com/golang/mock/tree/main/sample . Если клонировать этот репозиторий, все работает
скопировал файл https://github.com/golang/mock/blob/main/sample/user.go в свой репозиторий
вызываю генерацию:
//go:generate mockgen -destination mock_user_test.go -package user_test github.com/golang/mock/sample Index,Embed,Embedded
выдает
prog.go:12:2: cannot find module providing package github.com/golang/mock/mockge
n/model: import lookup disabled by -mod=vendor
(Go version in go.mod is at least 1.14 and vendor directory exists.)
prog.go:12:2: cannot find module providing package github.com/golang/mock/mockge
n/model: import lookup disabled by -mod=vendor
(Go version in go.mod is at least 1.14 and vendor directory exists.)
prog.go:12:2: no required module provides package github.com/golang/mock/mockgen
/model: go.mod file not found in current directory or any parent directory; see
'go help modules'
prog.go:14:2: no required module provides package github.com/golang/mock/sample:
go.mod file not found in current directory or any parent directory; see 'go hel
p modules'
2023/11/02 00:42:06 Loading input failed: exit status 1
user.go:4: running "mockgen": exit status 1
Если прописать аналогичную строку, ошибка таже.
go env
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\G\AppData\Local\go-build
set GOENV=C:\Users\G\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\G\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\G\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:/Users/G/sdk/go1.21.3
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLCHAIN=auto
set GOTOOLDIR=C:\Users\G\sdk\go1.21.3\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.21.3
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=0
set GOMOD=C:\Users\G\GolandProjects\cc\cc-profile\go.mod
set GOWORK=
set CGO_CFLAGS=-O2 -g
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-O2 -g
set CGO_FFLAGS=-O2 -g
set CGO_LDFLAGS=-O2 -g
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -fno-caret-diagnostics -Qunused-arguments -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=C:\Users\G\AppData\Local\Temp\go-build2910196759=/tmp/go-build -gno-record-gcc-switches
Не понимаю как исправить.
Делал:
- go clean -modcache
- Удалял папку vendor из проекта.
- go mod tidy
- go clean -modcache
Не помогло
Не понимаю как исправить.
Ответы (1 шт):
У вас есть папка vendor. По старому соглашению, ещё от первых версий Го, предполагается, что все зависимости находятся в этой папке. Вам нужно либо удалить vendor и скачать зависимости через go mod tidy, либо загрузить все дополнительные зависимости в vendor.
Разумеется, по нынешним временам приемлемым считается вариант удалить vendor. Использовать vendor нынче не кошерно.