以下是 Go 模块(Go Modules)完整、清晰的使用指南,适用于 Go 1.11 及以上版本(推荐 Go 1.16+),涵盖初始化、依赖管理、安装与日常开发流程:
1. 初始化项目
在项目根目录执行以下命令,创建 go.mod 文件:
go mod init your-project-name
✅ 示例:
go mod init my-web-app这将生成一个
go.mod文件,记录模块路径和依赖信息。
2. 添加或更新依赖
2.1 显式添加依赖
# 安装最新兼容版本
go get github.com/gin-gonic/gin
# 安装指定版本(推荐用于生产环境)
go get github.com/gin-gonic/gin@v1.9.0
# 升级到最新版本(包括主版本可能变动)
go get -u github.com/gin-gonic/gin
⚠️ 注意:
-u会尝试升级到最新主版本,可能导致不兼容。建议固定版本。
2.2 从代码中自动识别依赖
当你在 .go 文件中导入了新包(如 import "github.com/gin-gonic/gin"),但尚未下载时:
-
无需手动
go get,可直接运行:go mod tidyGo 会自动分析源码,添加缺失依赖并移除未使用的依赖。
3. 整理与同步依赖
3.1 自动添加/删除依赖(推荐常用)
go mod tidy
- 添加代码中引用但未声明的依赖
- 删除
go.mod中存在但代码未使用的依赖 - 确保
go.sum文件同步更新(用于校验依赖完整性)
每次修改 import 后建议运行此命令
3.2 下载依赖到本地缓存(可选)
go mod download
- 将
go.mod中所有依赖下载到本地$GOPATH/pkg/mod缓存 - 加快后续构建速度,便于离线开发
4. 构建与运行(自动处理依赖)
Go 在构建或运行时会自动解析所需依赖(前提是已通过 go mod tidy 或 go get 声明):
# 运行程序(自动使用已声明依赖)
go run main.go
# 构建二进制文件
go build
# 构建指定输出
go build -o myapp .
🔒 如果依赖未在
go.mod中声明,且未运行go mod tidy,可能会报错。
推荐工作流程(日常开发)
-
初始化项目
go mod init your-project-name -
编写代码 ,导入所需包(如
gin) -
添加/更新依赖
go get github.com/gin-gonic/gin@v1.9.0 -
整理依赖(关键步骤)
go mod tidy -
开发与测试
go run main.go -
提交代码时包含
go.modgo.sum(确保可重现构建)
补充说明
-
go.sum是什么?记录每个依赖的哈希值,用于验证下载内容是否被篡改。必须提交到版本控制。
-
如何查看当前依赖树?
go list -m all -
如何升级所有依赖?
go get -u ./... go mod tidy谨慎使用,可能导致破坏性更新。
这份指南适用于绝大多数 Go 项目开发场景,遵循它可确保依赖管理清晰、可重现、高效。