一、概念

依赖管理,指的就是使用第三方代码的管理

依赖管理的三个阶段GOPATH、GOVENDOR、go mod

2018 年后基本都是用 go mod来管理依赖了


二、GOPATH和GOVENDOR

默认在~/go(unix, linux),%USERPROFILE%\go (windows)

开发的项目和依赖的包都要放在同一个目录,比如

GOPATH="/Users/hxs/go"

如果两个项目依赖同一个包,但是依赖的版本不一样,但是包又在同一个目录,就很难搞了

为了解决这个问题,在项目的根目录,增加 vendor 目录,
加载依赖库的时候,首先就会到当前项目根目录的 vendor 下查找依赖库


为了方便管理vendor,避免每次下载第三方包,手动去复制到 vendor
所以出现了很多第三管理工具

大量第三方依赖管理工具: glidedepgo dep...


三、GO MOD

由go命令统一的管理,用户不必关心目录结构
初始化:go mod init
增加依赖:go get
更新依赖: go get [@v...],不选版本就是更新到最新
删除多余依赖:go mod tidy
将旧项目迁移到go mod: go mod init 或 go build ./...

go build ./...  // 编译当前目录以及他的所有子目录的文件