0. 引言
Golang 1.11版本引入了Go.mod作为官方的包管理工具。
Go.mod,也就是Module。Module是相关Go包的集合,是源代码交换和版本控制的单元。Modules替换旧的基于GOPATH的方法,来指定使用哪些源文件。
在引入go.mod之前,项目必须放在$GOPATH/src目录下,依赖要靠手动管理,并且依赖包没有版本一说,对开发造成了极大的困扰。之后的vendor部分解决了上述问题,但是依赖包需要全部下载到项目的vendor路径下。go.mod则将依赖包默认下载到$GOPATH/pkg/mod路径下,减少开发者对依赖的关心,只需关注个人代码,同时减轻了push/pull压力,也避免了他人随意修改依赖。