三大阶段:GOPATH,GO
GOPATH
主要是三个目录,bin,pkg,src
bin:项目编译的二进制文件
pkg:项目编译的中间产物,加速编译
src:项目源码
go get下载最新版本的包到src目录下
弊端
无法做到多版本控制,因为都是在src拿的源码。
GOVendor
项目目录下增加vendor文件,所有依赖包副本形式放在$ProjectRoot/vendor
依赖寻址方式:vendor=>GOPATH
通过每个项目引入一份依赖的副本,
解决了多个项目需要同一个package
依赖的冲突问题。
弊端
如果A依赖B和C,但它们的版本又不兼容时就会出现问题了,就是没法控制依赖的版本。
GO Module
1.16版本默认开启了
通过go.mod文件管理依赖包版本
通过go get/go mod指令工具管理依赖包
依赖管理三要素:
1.配置文件,描述依赖 go.mod(我们需要有文件能描述它们的关系)
2.中心仓库管理依赖库 Proxy
3.本地工具 go get/mod