请大家注意,本节课讲的这个GOPROXY非常非常重要
GOPROXY是什么
我们回顾一下使用其它的技术栈的时候,比如java、php、nodejs……,我们为它们做依赖管理的时候,是不是都得配置一个国内的镜像源啊?因为国内镜像源既快又稳定,同样在go中,这个GOPROXY起到类似作用,也是帮助我们更快更稳定地下载第三方依赖,但是跟其它技术栈不同的是,在其它技术栈中,就算不配置国内镜像源,我们直接连国外的镜像源,也一样可以成功下载依赖(当然也有失败的情况,但是多试几次,总会下载成功的
但是在go中,如果你没有使用科学上网,并且没有正确配置GOPROXY,有些第三方依赖你是100%下载不下来的,不管试多少次都一样下载不下来,因为很多第三方依赖都依赖了的包,而这些包是放在google服务器上的,那些用到它的第三方库找依赖的时候默认是去google服务器上找的,但在国内,大家都懂的,默认情况下我们无法直接连接google服务器,所以会出现某些依赖的第三方库100%下载不成功的情况,而GOPROXY,就是go团队为那些无法直连google服务器的地区提供的一个配置项,通过正确配置GOPROXY,我们不需要科学上网也能够轻松下载go的所有第三方依赖。
配置GOPROXY
首先我们打开一个命令行,输入 go env
go env 查看各参数
这次我们看一下倒数第二项,GOPROXY,我这个已经配置过了,所以它后面有值,大家如果刚装上go语言、还没配置过的话,后面应该是空的
我们看一下,GOPROXY中的proxy,是代理的意思,也就是说这里需要我们配置网址,在这里我给大家推荐两个我个人比较常用的,就是我上面配的那俩,大家请记住,GOPROXY是可以配置多个地址的,多个之间用英文逗号分隔开即可,而且这些都是同时生效的
具体配置方式,新建一个环境变量,名字就叫GOPROXY,注意一定要叫这个名字,下面的变量值,大家照着我这个抄一下就行了,这样我们就把它配置到自己的环境变量里了
配置GOPROXY
然后大家关闭自己的命令行,再重新打开,输入go env,不出意外的话,GOPROXY那一栏就会显示的跟我一样(为什么要先关闭命令行,再重新打开呢?是为了让新配置的环境变量生效)
配置GO111MODULE
GO111MODULE又是什么呢?中间那个111要分开看,GO111->GO1.11,因为这个配置项是在go1.11版本加入的,所以前面就叫了这个名字,至于后面的MODULE,是go官方提供的依赖管理方案,已内置到go的命令行中,在实际开发中,我们除了要正确地配置GOPROXY之外,还要正确地配置GO111MODULE,我们才可以无痛地使用Go语言做开发
同样我们需要在环境变量这块新建一个配置项叫GO111MODULE,然后值,on
配置GO111MODULE
OK,配置完毕后,同样关闭自己的命令行,再重新打开,输入go env,不出意外的话,GO111MODULE那一栏就会显示的跟我一样
配置完这些,我们才可以真正轻松加愉快地使用Go语言
enjoy
Go!Go!Go!