为什么需要依赖管理
都存放
go module默认依赖管理工具
GO111MODULE
开启关闭
- GO111MODULE=off —— 禁用 go module,程序编译时自动从 GOPATH、vendor 文件夹中查找包;
- GO111MODULE=on —— 启动 go module,程序编译时忽略 GOPATH 和 vendor 文件夹,只根据 go.mod下载依赖;
- GO111MODULE=auto —— 当项目不存在于 GOPATH/src 目录下,且项目根目录存在 go.mod 文件时,开启 go module。
Windows 下开启 GO111MODULE 的命令为:
set GO111MODULE=on
MacOS 或者 Linux 下开启 GO111MODULE 的命令为:
export GO111MODULE=on
GOPATH/src 目录
题外话:第三方库存放位置
PythonPHP并不在本项目路径你指定的vendor 虚拟环境目录GOPATH/pkg/mod
GOPATH/pkg/mod
不同项目不同版本同一个第三方库相同版本
相同版本第三方库
gofmt不同的代码风格发明者都帮你决定好安心搬砖
三位发明者大概是个温柔的独裁者。这也是 Golang的语言哲学 —— 它都帮你决定好了,你没选择。
GOPROXY
GOPROXY默认值
常用 go mod 命令
go mod init 初始化当前文件夹, 创建go.mod文件 go mod download 下载依赖第三方库到本地cache(默认GOPATH/pkg/mod) go clean -modcache 清理第三方库缓存(默认GOPATH/pkg/mod) go get github.com/gogf/gf@master 下载 gf 库主分支代码 go list -m -versions github.com/gogf/gf 查看可下载版本 go get ./... 下载项目依赖 go get -u 更新第三方库 go mod verify 验证依赖是否正确 go mod tidy 增加缺少的module,删除无用的module go mod vendor 将依赖复制到vendor下 go mod graph 以文本模式打印模块需求图