Go1.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 版本 ≥ 1.11(建议 ≥ 1.16,因 1.16 起默认开启 Modules,无需设置环境变量):
go version 查看版本go env -w GO111MODULE=on
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 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 工具链,无需额外安装,开箱即用,清晰可靠。