1 什么是Go Modules
Go modules 是 Go 语言的依赖解决方案,发布于 Go1.11,正式于 Go1.14 推荐在生产上使用。
2 如何使用go mod来管理项目依赖包
go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct
这样的话, 下面两个设置就被添加到系统的环境变量中了
GO111MODULE=on GOPROXY=https://goproxy.cn,https://goproxy.io,direct
注:
GO111MODULE 开启则使用go mod, 否则使用GOPATH GOPROXY是设置国内的镜像, 实现快速拉取第三方依赖包 direct的意思是 如果在镜像站点未找到指定包, 则直接到import中指定的导包路径中寻找指定包
然后项目中还要生成go mod文件, 比如项目名根目录叫test
go mod init test
3 go mod命令
(1) go mod tidy
tidy会检测该文件夹目录下所有引入的第三方依赖, 写入 go.mod 文件,
并把没有使用的第三方依赖从go.mod文件中删除
(2) go mod download
go mod download用于将go.mod中的第三方依赖的指定版本下载至本地
(3) go get …
go get用于下载或更新第三方依赖
- 下载: go get github.com/gin-gonic/gin
- 更新: go get -u github.com/gin-gonic/gin
- 更新到特定版本: go get github.com/user/repo@version
- 更新到某个分支最新的代码: go get github.com/user/repo@master
- 更新到最新的修订版(只改bug的版本): go get -u=patch github.com/user/repo
- 自动整理第三方依赖到go.mod, 并下载最新版到本地: go get
(4) go mod verify …
校验依赖是否被篡改(5) go mod why …
查看为什么需要依赖某模块(6) go mod graph
查看现有的依赖结构(7) go mod vendor
导出项目所有的依赖到vendor目录