// 支持mod 管理
go env -w GO111MODULE=on
go mod init 项目名
// 项目中创建main.go文件,导入需要用到的包
// 执行命令:
go mod tidy
go mod vendor -v // 当前目录下生产vendor目录,包含所有依赖包
问题总结
// 使用出现错误时需要执行 go mod init: modules disabled by GO111MODULE=off; see 'go help modules'
// 解决方案:
go env -w GO111MODULE=on
// 报错信息
//go get github.com/kataras/iris: module github.com/kataras/iris: Get "https://proxy.golang.org/github.com/kataras/iris/@v/list": dial tcp 216.58.200.49:443: i/o timeout
//报错原因 请求不到golang.org/谷歌的扩展包
// 解决方法
// 方法1 修改go.mod文件
replace (proxy.golang.org/github.com/kataras/iris/@v/list => github.com/kataras/iris latest) // 不知道版本号的写latest
// 终端执行
go mod tidy
// 方法2 推荐 设置代理 设置完后 重新执行go get即可
go env -w GOPROXY=https://goproxy.cn
// go1.11发布后,还发布一个goproxy提供代理服务,goproxy.cn是专门服务于中国的,依赖于七牛云
// github地址: https://github.com/goproxy
命令总结
go mod命令
go mod download // 下载依赖到本地缓存,查看GOCACHE缓存地址
go mod graph //把模块之间的依赖图显示出来
go mod init [模块名] // 当前目录初始化和创建`go.mod`文件,最好是项目名
go mod tidy -v // 添加确实模块和移除不必要的模块
go mod vendor -v // 当前目录下生产vendor目录,包含所有依赖包
go mod verify // 检查当前模块的依赖是否已经存储在本地下载的源代码缓存中
go build -mod=vendor // 依赖module下的vendor生成可执行文件
go get rsc.io/sampler //更新稳定版依赖