go mod download 用于预下载依赖到本地缓存,不修改 go.mod/go.sum;支持指定模块、版本、子模块通配符;配合 GOPROXY 可加速并支持离线使用;-v 和 -json 参数便于调试与脚本集成。

在 Go 项目中,go mod download 可以提前下载所有依赖模块到本地缓存($GOPATH/pkg/mod),无需构建或运行代码,适合 CI/CD 构建前预热依赖、离线环境准备或验证模块可获取性。
基本用法:下载当前模块的全部依赖
确保项目根目录下有 go.mod 文件后,直接执行:
go mod download
该命令会解析 go.mod 中的 require 项(含间接依赖),从代理(如 proxy.golang.org)或源仓库拉取对应版本的模块 zip 包,并解压存入本地模块缓存。不会修改 go.mod 或 go.sum。
立即学习“go语言免费学习笔记(深入)”;
指定模块或版本下载
只下载某个特定模块(支持通配符):
- go mod download github.com/gin-gonic/gin —— 下载最新稳定版
- go mod download github.com/gin-gonic/gin@v1.9.1 —— 下载指定版本
- go mod download rsc.io/quote/... —— 下载该路径下所有子模块
配合 GOPROXY 和离线使用
若需在无外网环境使用,可先在有网机器上完整下载依赖,再同步 $GOPATH/pkg/mod 目录(或启用 go mod download -json 获取清单)。同时建议配置代理提升速度与稳定性:
go env -w GOPROXY=https://goproxy.cn,direct
设置后,go mod download 会优先从国内代理拉取,失败时回退到直接克隆源码库。
验证与调试技巧
加 -v 查看详细下载过程:
go mod download -v
加 -json 输出结构化信息(适合脚本解析):
go mod download -json github.com/go-sql-driver/mysql
若提示 “no required module provides package”,说明该包未被当前 go.mod 声明依赖,需先 go get 或手动添加 require 行。










