[GoLang避坑实战-15] Go Module 救命指南:彻底告别依赖冲突和环境混乱
大家好,我是极客老墨。 Go 1.11 之前,依赖管理是个大麻烦。GOPATH 要求所有代码放在固定目录,vendor 目录管理混乱,dep 工具又不够成熟。Go Modules 的出现彻底解决了这些问题,现在已经是官方标准方案。 这篇就聊聊 Go Modules,看看它是怎么管理依赖的。 Go Modules 是什么 Go Modules 是 Go 的依赖管理系统,解决了三个核心问题。 核心功能 1// go.mod 文件示例 2module github.com/username/myproject 3 4go 1.21 5 6require ( 7 github.com/gin-gonic/gin v1.9.1 8 gorm.io/gorm v1.25.5 9) 解决的问题: 版本管理:明确指定每个依赖的版本 可重现构建:不同环境构建结果一致 依赖隔离:不同项目可以使用同一个包的不同版本 与 GOPATH 的区别 1# GOPATH 时代(痛苦) 2export GOPATH=$HOME/go 3cd $GOPATH/src/github.com/username/project 4# 所有项目共享依赖,版本冲突频繁 5 6# Go Modules 时代(简单) 7mkdir myproject 8cd myproject 9go mod init github.com/username/myproject 10# 每个项目独立管理依赖 初始化模块 创建新项目时,第一步就是初始化模块。 ...