依赖管理 | 青训营笔记

100 阅读1分钟

1 发展过程

1.1 GOPATH

包全在src文件夹,不能多项目对同一包的多版本

image.png

1.2 go vendor

每个项目根目录下一个vendor文件夹,不能一个项目依赖同一包的多版本,不区分版本

image.png 1.3 go module

go module可以将某个项目(文件夹)下的所有依赖整理成一个 go.mod 文件,里面写入了依赖的版本等

GO111MODULE=off: 不使用 modules 功能,查找vendor和GOPATH目录。

GO111MODULE=on: 使用 modules 功能,不会去 GOPATH 下面查找依赖包。

GO111MODULE=auto: Golang 自己检测是不是使用 modules 功能,如果当前目录不在$GOPATH 并且

当前目录(或者父目录)下有go.mod文件,则使用 GO111MODULE, 否则仍旧使用 GOPATH mode。

image.png

  1. go mod init 项目名称:初始化命令
  2. go mod download : 下载modules到本地路径是go env中的GOMODCACHE,跟java的maven类似,也就是你的本地仓库
  3. go mod tidy: 添加缺失或删除没有使用的包
  4. go mod verify:验证依赖是否正确
  5. go mod why:查找依赖
  6. go mod edit:可执行go help mod edit查看用法也可到官网查看主要也是用来操作go.mod文件的