GO编程(打卡)-Task09: 包管理
包管理(Go Modules)
-
是什么
Modules是关于Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性 -
使用方法
-
环境变量
# 查看当前配置 $ go env # 修改配置 $ go env -w GO111MODULE=on
-
GO111MODULE
auto:只要项目包含了 go.mod 文件的话启用 Go modules,目前在 Go1.11 至 Go1.14 中仍然是默认值。
on:启用 Go modules,推荐设置,将会是未来版本中的默认值。
off:禁用 Go modules,不推荐设置。
-
GOPROXY
此环境变量主要用于设计Go Module的代理
-
GOSUMDB
此环境变量用于在拉取模块的时候保证模块版本数据的一致性
-
-
go get
-
用于拉取新的依赖
-
go get 拉取依赖,会进行指定性拉取(更新),并不会更新所依赖的其它模块
-
go get -u 更新现有的依赖,会强制更新它所依赖的其它全部模块,不包括自身
-
go get -u -t ./...更新所有直接依赖和间接依赖的模块版本,包括单元测试中用到的
-
-
常用命令
go mod init // 初始化go.mod go mod tidy // 更新依赖文件 go mod download // 下载依赖文件 go mod vendor // 将依赖转移至本地的vendor文件 go mod edit // 手动修改依赖文件 go mod graph // 查看现有的依赖结构 go mod verify // 校验依赖
参考
https://github.com/datawhalechina/go-talent/blob/master/8.包管理.md