在Go1.12版本发布了六个月之后,Go最新的版本1.13这个月发布了。相对于之前的版本,这个版本的变化主要体现在:工具链、运行时和标准库。维持Go第一版时的兼容承诺,所以这次发布更新不会影响到之前版本的使用。下面就捡一些常用内容的变化做简单介绍,如果想了解更详细的内容,请访问golang官网。
工具链
Modules变化
- 环境变量
GO111MODULE
的默认值继续auto
,但是只要当前目录包含go.mod
文件或位于go.mod
文件的目录下,auto
设置就会激活go命令的模块-感知模式,即使当前目录在$GOPATH/src
内。而不像之前版本规定,工程必须在$GOPATH/src
之外。 - 之前我们可以配置
GOPROXY
环境变量来通过代理来获取依赖。但是如果我们设置了这个变量,我们的下载模块都会通过代理,这其中可能包括你的私有仓库或依赖。这就导致某些私有module无法获取到,Go1.13这个版本引入了一个新的环境变量GOPRIVATE
,用来指示私有的模块路径。
你可以通过下面的方式设置GOPRIVATE
环境变量来控制哪些私有仓库和依赖(公司内部仓库)不通过proxy
来拉取,直接走本地。
go env -w GOPROXY=https://goproxy.io,direct
# 设置不走proxy的私有仓库,多