GOPATH

GOPATH是一个环境变量,它的默认值在linux/unix下为~/go,在windows下为%USERPROFILE%(用户目录)\go。
GOPATH下面必须有一个src目录,用于存放代码。
一般公司或个人开发的项目要放在src目录下,从网上拉取的第三方库也会存放在src目录下。
获取第三方库:使用go get命令
所有的依赖都会先到GOROOT/src下去找,最后再到GOPATH/src下去找。
GOROOT —— Go语言编译器所在的位置
使用GOPATH要关闭GOMODULE功能:设置GO111MODULE=off。

GOVENDOR

当不同的项目需要依赖不同版本的同一第三方库时,GOPATH模式就会产生问题。
在GOVENDOR方式中,每个项目都有自己的vendor目录,用于存放自己的第三方库。vendor目录可用于解决每个项目的依赖版本不同的问题。
此时所有的依赖都会先到本项目的vendor目录下(GOPATH/src/项目名/vendor)去寻找,然后再到GOROOT/src下去找,最后再到GOPATH/src下去找。
GOPATH模式转换为GOVENDOR模式只需要在项目目录下添加一个vendor目录即可。