Go Modules
Go Modules 是 Go 的依赖与版本管理机制,用来确定模块边界、解析依赖和支持可复现构建。
#type / concept
#status / growing
#tech / dev
#resource / go
[!info] related notes
- 所属 MOC: Go 工具链与工程结构 MOC
- 前置概念: Go 包、导入与可见性
- 相关 howto: 使用scoop安装并配置go环境
Go Modules
一句话定义
Go Modules 是 Go 官方的依赖和版本管理机制,用来定义一个项目的模块边界、依赖关系和构建所需版本集合。
核心机制 / 工作原理
最常见的两个文件:
go.modgo.sum
其中:
go.mod描述当前模块名和依赖要求go.sum记录依赖校验信息,帮助构建可复现
Go Modules 解决的核心问题包括:
- 项目如何声明自己是谁
- 依赖从哪里来
- 不同版本如何被解析
- 团队和 CI 如何拿到一致构建结果
最小例子 / 最小场景
go mod init example.com/hello
go mod tidy
这通常就是一个新项目进入模块化状态的起点。
为什么这部分重要
学 Go 不能只停留在单文件程序。只要进入真实项目,就要理解:
- 包内组织
- 模块边界
- 外部依赖版本
否则你会一直把工程问题误解成“导包为什么报错”的零散现象。
边界与易混淆点
- 包和模块不是同一层概念
go mod tidy不是“神奇修复命令”,它只是整理依赖图- 模块路径通常要和代码分发路径、仓库路径和导入路径一起理解