基本上,大多数语言都有包管理工具。而go 也有,不过发展比较混杂。
在1.13版本之后,go 支持module管理。使得你不必将代码拘束“GOPATH”目录下面;同时将包下载至${GOPATH}/pkg而不是${GOPATH}/src; 去除版本问题。
GO111MODULE
启用go module 设置 环境变量 go111module
- go env -w GO111MODULE=off
关闭module模式,编译时从GOPATH /vender 下寻找资源
- go env -w GO111MODULE=on
开启module模式,编译时根据go.mod 寻找资源
- go env -w GO111MODULE=auto
当项目建立在GOPATH/src 之外的目录时,且存在go.mod .开启on模式。否则应用off 模式
GOPROXY
设置代理
go env -w GOPROXY=https://goproxy.cn,direct
或者
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/
go mod命令
go mod download
下载依赖至本地(默认${GOPATH}/pkg/mod)
go mod edit
编辑go.mod文件
- go mod graph
打印模块依赖图
- go mod init
初始化当前文件夹,创建go.mod。类似js中npm init
- go mod tidy
增加缺少的module,去除无用的module
- go mod vendor
将依赖复制到vendor
- go mod verify
校验依赖
- go mod why
解释为什么需要依赖
go.mod示例
module myself/octoberCity/day01/mysql
go 1.15
require github.com/go-sql-driver/mysql v1.5.0