Go modules 依赖管理极简指南
Golang 包管理有内置的 vendoring 工具、社区 govendor 和 dep ,自 Go1.11 以后,支持 module,一种新的依赖管理工具。一些公司分享使用 bazel (a fast, scalable, multi-language and extensible build system https://bazel.build),比如 B 站和英语流利说,我也尝试使用了一下,发现还是复杂了一些。习惯使用 dep 但无法摆脱 GOPATH 的依赖,那么使用 go mod 吧。
Go 安装各种设置好之后别忘了另外设置 export GO111MODULE="on"。以此你就可以把使用 go module 做依赖管理的项目代码放到任一目录下了,不再强制放到 gopath 路径下。
在 Go 项目根目录下运行:
go mod init <modulename>
modulename 随意取,这步会生成 go.mod
文件。
使用 go get 把项目中的依赖自动加载到 go.mod 文件:
go get -u ./...
使用 go mod vendor
生成项目依赖的 vendor 目录,包含了项目中所需的依赖所库有源码。
更新或引入新的依赖包:
go get -u <repo url>
go mod vendor