Go 模块管理入门
在 Go 1.11 之前,依赖管理是 Go 语言的一大痛点。GOPATH、vendor、dep 等方案各有缺陷。Go Modules 的出现彻底解决了这个问题,成为 Go 官方推荐的依赖管理方案。 1. 什么是 Go Modules? Go Modules 是 Go 语言的依赖管理系统,它解决了以下问题: 版本管理:明确指定依赖的版本 可重现构建:确保不同环境构建结果一致 依赖隔离:不同项目可以使用同一个包的不同版本 2. 初始化模块 2.1 创建新模块 # 创建项目目录 mkdir myproject cd myproject # 初始化模块 # 模块路径通常是代码仓库地址 go mod init github.com/username/myproject 这会生成 go.mod 文件: module github.com/username/myproject go 1.21 2.2 go.mod 文件结构 module github.com/username/myproject // 模块路径 go 1.21 // Go 版本 require ( github.com/gin-gonic/gin v1.9.1 // 直接依赖 gorm.io/gorm v1.25.5 ) require ( github.com/gin-contrib/sse v0.1.0 // 间接依赖(由 gin 引入) // ... 更多间接依赖 ) // indirect exclude ( github.com/some/package v1.2.3 // 排除某个版本 ) replace ( github.com/old/package => github.com/new/package v1.0.0 // 替换依赖 ) 3. 常用命令 3.1 添加依赖 # 方法一:直接在代码中 import,然后运行 go mod tidy # 方法二:手动添加 go get github.com/gin-gonic/gin@v1.9.1 # 获取最新版本 go get github.com/gin-gonic/gin@latest # 获取特定版本 go get github.com/gin-gonic/gin@v1.8.0 # 获取某个 commit go get github.com/gin-gonic/gin@abc1234 3.2 go mod tidy 最常用的命令,它会: ...