golang基础(4)https://developer.aliyun.com/article/1530658
2. 依赖管理
背景
2.1 依赖管理演进
2.1.1 GOPath
2.1.2 GO Vendor
- 项目目录下曾江vender文件 ,所有依赖包副本形式放在$ProjectRoot/vender
- 依赖寻址方式: vendor => GOPATH
2.1.3 GO Mode
- 通过go.mod文件管理依赖包版本
- 通过go get/go mod指令工具管理依赖包
2.2 配置管理三要素
1.配置文件,描述依赖 go.mod
2.中心仓库管理依赖库 Proxy
3.本地工具 go get/ mod
2.3
2.3.1 依赖管理配置 - go mod
2.3.2 依赖配置 -version
语义化版本第一个是大版本,之间是可以不兼容的,第二个是小版本,在兼容的情况下实现更新,第三个是修复bug
2.3.3依赖配置-indirect
2.3.4 依赖配置 -incompatible
2.3.5 版本依赖 依赖图
他会选择一个最低的兼容版本
2.3.6 依赖分发 - 回源
缺点
- 无法保证构建的稳定性
增加/修改/删除软件版本 - 无法保证依赖的可用性
删除软件 - 增加第三方压力
代码托管平台负载问题
2.3.7依赖分发 - proxy
工具 goget
工具 gomode