go学习:go mod

299 阅读2分钟

"6-2-2-1-1":

六个环境变量:GO111MODULE、GOPROXY、GONOPROXY、GOSUMDB、GONOSUMDB、 GOPRIVATE。

两个概念:Go module proxy 和 Go checksum database。

两个主要文件:go.mod 和 go.sum。

一个主要管理命令:go mod。

一个 build flag

1 首先要把go升级到1.11,升级后,可以设置通过一个环境变量GO111MODULE来激活modules:

  • GO111MODULE=off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。
  • GO111MODULE=on,go命令行会使用modules,而一点也不会去GOPATH目录下查找。
  • GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:当前目录在GOPATH/src之外且该目录包含go.mod文件,或者当前文件在包含go.mod文件的目录下面。

go mod init <项目模块名称>  初始化模块,会在项目根目录下生成 go.mod 文件。

go mod tidy 根据 go.mod 文件来处理依赖关系。

go mod vendor 将依赖包复制到项目下的 vendor 目录。建议一些使用了被墙包的话可以这么处理,方便用户快速使用命令 go build -mod=vendor 编译

go list -m all 显示依赖关系。go list -m -json all 显示详细依赖关系。

go mod download 下载依赖。参数是非必写的,path 是包的路径,version 是包的版本。

GO111MODULE 对应了go1.11

GOPROXY

Go 生态系统中有着许多中国 Gopher 们无法获取的模块,比如最著名的 golang.org/x/...。并且从 GitHub 获取模块的速度也有点慢。因此需要配置GOPROXY来加速Module依赖下载,这里使用goproxy.cn代理github.com/goproxy/gop…

问题: Get "sum.golang.org/lookup/gith…": dial tcp 142.251.43.17:443:

解决: studygolang.com/articles/24… go env-w GOSUMDB=off

引用: blog.csdn.net/qq_38151401…