xmodule
Go 在 1.11 之后推出了依赖包管理工具 Go Modules,使得开发者可以在 GOPATH 指定的目录外组织项目代码。
官方go module wiki go/wiki/Modules;
Introduction to Go Modules 是一篇很好的go module 入门介绍;
要使用go module
,首先要设置`GO111MODULE=on。go module 安装 package 的原則是先拉最新的 release tag,若无tag则拉最新的commit,详见 Modules官方介绍。go 会自动生成一个 go.sum 文件来记录 dependency tree。
go help mod
查看帮助
download download modules to local cache (下载依赖的module到本地cache))
edit edit go.mod from tools or scripts (编辑go.mod文件)
graph print module requirement graph (打印模块依赖图))
init initialize new module in current directory (在当前文件夹下初始化一个新的module, 创建go.mod文件))
tidy add missing and remove unused modules (增加丢失的module,去掉未用的module)
vendor make vendored copy of dependencies (将依赖复制到vendor下)
verify verify dependencies have expected content (校验依赖)
why explain why packages or modules are needed (解释为什么需要依赖)
go mod init moduleName
go mod init github.com/longjoy/micro-go-course
// output
go: creating new go.mod: module github.com/longjoy/micro-go-course
go.mod:
module github.com/longjoy/micro-go-course
go 1.14
go list -m -u all
来检查可以升级的package,使用go get -u need-upgrade-package
升级后会将新的依赖版本更新到go.mod * 也可以使用 go get -u
升级所有依赖
replace
go.mod
中使用replace
替换成引用的库。
- 需要翻墙访问,替换成国内的包;
- 团队维护公共包,项目需要本地调试;(可以结合 go mod vendor使用)
module gitlab.mw.com/data/shop
go 1.13
require (
github.com/pkg/errors v0.9.1
)
replace (
github.com/pkg/errors v0.9.1 => gitlab.mw.com/data/shop/errors
)
go get下载得包不在$GOPATH$/src目录下
https://juejin.cn/post/6854573210508853255