Go Module 初始化与依赖管理只需掌握 go mod init、go get 和 go mod tidy 三个核心命令:init 创建 go.mod,get 添加依赖,tidy 自动同步增删 require 条目并更新 go.sum。

直接在项目根目录执行 go mod init 就能初始化 Go Module,后续依赖会自动下载并记录在 go.mod 文件中,不需要手动维护 vendor 目录。
初始化新模块:go mod init
进入你的项目根目录(比如 myapp),运行:
go mod init myapp
其中 myapp 是模块路径(module path),通常用域名+项目名(如 github.com/username/myapp),它会影响后续 import 路径和版本发布。如果项目将来要公开或被其他项目引用,建议设为真实可访问的路径。
立即学习“go语言免费学习笔记(深入)”;
执行后会生成 go.mod 文件,内容类似:
module myapp
go 1.21
自动管理依赖:go get 和隐式触发
写代码时直接 import 第三方包(如 "github.com/gin-gonic/gin"),保存文件后运行 go build 或 go run main.go,Go 工具链会自动:
- 下载该包最新兼容版本
- 把依赖写入
go.mod(require 行) - 生成或更新
go.sum(校验和,确保依赖未被篡改)
也可以显式添加依赖:go get github.com/gin-gonic/gin@v1.9.1
支持指定版本、分支(@main)、commit(@a1b2c3d)。
清理与同步:go mod tidy
删除代码中已不用的 import 后,模块文件不会自动更新。运行:
go mod tidy
它会:
- 添加缺失的 require 条目(代码里用了但没记录的)
- 删除未使用的 require 条目(import 删除了但 go.mod 还留着的)
- 下载依赖并更新 go.sum
推荐在提交前、CI 构建时都执行一次,保持依赖干净准确。
查看和调试依赖:常用子命令
go mod graph:输出所有依赖及其版本关系(适合排查冲突)go list -m all:列出当前模块及所有依赖模块(含版本)go mod verify:校验本地依赖是否与 go.sum 一致go mod edit:手动编辑 go.mod(不推荐日常使用,优先走 go get / tidy)
遇到版本冲突?常见做法是用 go get 显式升级/降级某个依赖,再跑 tidy 解决。
基本上就这些 —— Go Module 的设计目标就是“开箱即用”,多数时候你只用记住 init、get、tidy 三个命令。










