You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行go mod tidy报错‘no matching versions for query "latest"’求助

问题:Go模块缓存内执行go mod tidy报错找不到mock模块版本

环境信息

Go版本

go version go1.19.4 linux/amd64

Go环境变量

GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/ishmeets/.cache/go-build"
GOENV="/home/ishmeets/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS="-modcacherw"
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/ishmeets/go/pkg/mod"
GONOPROXY="xxx"
GONOSUMDB="xxx"
GOOS="linux"
GOPATH="/home/ishmeets/go"
GOPRIVATE="xxx"
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/home/ishmeets/.local"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/home/ishmeets/.local/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.19.4"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/ishmeets/go/pkg/mod/xxx/xxx/fabric-mgmt-api@v0.0.0-20230119053658-acd5a1e86128/go.mod"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build2990676511=/tmp/go-build -gno-record-gcc-switches"

报错信息

在模块缓存目录下执行go mod tidy时,出现以下错误:

xxx/xxx/fabric-mgmt-api/internal/app/network-mgmt/xxx/primitives/mock: no matching versions for query "latest"

mock文件已放置在对应mock包的目录下,但错误依旧。

已尝试的操作

  • 将仓库复制到GOMODCACHE外执行go mod tidy成功:
    cp -a ~/go/pkg/mod/xxx/xxx/fabric-mgmt-api@v0.0.0-20230119053658-acd5a1e86128 ~/workspace/
    cd ~/workspace/fabric-mgmt-api@v0.0.0-20230119053658-acd5a1e86128 && go mod tidy
    
  • 使用Go 1.18版本执行go mod tidy成功。
  • 使用Go 1.20.1版本执行go mod tidy失败。

解决方案建议

  1. 不在模块缓存内操作:模块缓存是Go管理的专属区域,即便设置了-modcacherw,Go在缓存内处理模块的逻辑和普通工作目录有差异,优先在独立工作目录操作模块。
  2. 校验包导入路径:Go 1.19+对模块内本地包的引用检查更严格,确认mock包的导入路径和模块路径完全匹配,避免拼写或路径格式错误。
  3. 清理缓存并重拉模块:执行go clean -modcache清理现有缓存,再通过go get重新拉取目标模块,之后在工作目录执行go mod tidy。
  4. 检查私有模块配置:如果mock包属于私有模块,确认GOPRIVATE已正确包含对应模块前缀,防止Go尝试从公共代理拉取不存在的版本。
  5. 用replace指令临时修复:在go.mod中添加replace指令,将mock包路径指向本地目录:
    replace xxx/xxx/fabric-mgmt-api/internal/app/network-mgmt/xxx/primitives/mock => ./internal/app/network-mgmt/xxx/primitives/mock
    
    之后再执行go mod tidy。

内容的提问来源于stack exchange,提问作者Ishmeet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 07:07:50