Go 1.11起官方推荐使用Go Modules替代dep等工具,通过go mod命令直接管理依赖;需Go≥1.11(建议≥1.16),初始化用go mod init,自动下载依赖并生成go.mod/go.sum,常用命令包括go get、go mod tidy、go list等。

Go 语言从 1.11 版本起正式引入 Go Modules,它已成为官方推荐、默认启用的依赖管理机制,完全取代了早期的 dep、glide 等第三方工具。你不需要“安装”一个独立的依赖管理工具,而是直接使用 Go 自带的 go mod 命令。
确认 Go 版本并启用 Modules
确保你的 Go 版本 ≥ 1.11(建议 ≥ 1.16,因 1.16 起默认开启 Modules,无需设置环境变量):
- 运行
go version查看版本 - 若低于 1.16,可临时启用:执行
go env -w GO111MODULE=on - Modules 模式下,项目根目录会生成
go.mod和可选的go.sum文件
初始化模块并管理依赖
在项目根目录执行以下命令即可开始依赖管理:
-
go mod init example.com/myproject—— 初始化模块,生成go.mod -
go run main.go或go build—— 首次运行时自动下载依赖,写入go.mod -
go get github.com/gin-gonic/gin@v1.9.1—— 添加/升级指定版本依赖 -
go mod tidy—— 清理未使用的依赖,补全缺失依赖,同步go.mod和go.sum
常见依赖操作说明
日常开发中高频使用的命令:
立即学习“go语言免费学习笔记(深入)”;
-
go list -m all—— 列出当前模块及所有依赖(含版本) -
go mod graph | grep xxx—— 查看依赖图谱,定位某包被谁引入 -
go mod vendor—— 将依赖复制到vendor/目录(仅在需要离线构建时使用) -
go mod verify—— 校验依赖哈希是否与go.sum一致,保障完整性
注意事项与避坑提示
Modules 使用简单,但几个细节容易出错:
- 不要在
$GOPATH/src下初始化 module(除非明确关闭 GOPATH 模式),否则可能触发兼容模式 - 避免手动编辑
go.mod,优先用go get或go mod tidy维护 - 私有仓库需配置
GO_PRIVATE(如go env -w GOPRIVATE=git.example.com),否则会尝试走 proxy - 替换依赖可用
replace(写在go.mod中),调试或使用 fork 分支时很有用
基本上就这些。Go Modules 已深度集成进 Go 工具链,无需额外安装,开箱即用,清晰可靠。










