内容简介:go buildin package manager.go mod是go语言内置的包管理工具,集成在go tool中,安装好go就可以使用。要求: go version >= 1.11
go mod
go buildin package manager.
go mod是 go 语言内置的包管理工具,集成在go tool中,安装好go就可以使用。
要求: go version >= 1.11
官方文档: https://tip.golang.org/cmd/go...
环境变量
# 通过环境变量GOPROXY设置代理 export GOPROXY=https://goproxy.io # go mod功能开关,默认是auto,在gopath中不启用 # 可设置为on强制启用 export GO111MODULE=on
初始化 go mod init
init报错outside gopath no import comments
# 方法一 手动创建go.mod文件, 写入module xxx echo 'module xxx' > go.mod # 方法二 main包加入import声明 package main // import "xxx"
go mod download
下载依赖
go mod tidy
同步依赖包,添加需要的,移除多余的
go mod vendor
将依赖包放入vendor
go get 下载/升级依赖
go mod不再下载源码进$GOPATH/src
go mod的下载目录在$GOPATH/pkg/mod,并且是文件权限是只读的 -r--r--r--
# tag必须以v开头 v1.2.3格式 go get -u xxx.com/pkg@2.1.0
vendor 模式
go mod是不推荐使用vendor目录的,而是直接使用source或cache中的包。
在根目录有vendor文件夹时默认使用vendor模式。此模式下依赖只从vendor中找。
https://github.com/golang/go/...
# vendor模式下get报错:go get: disabled by -mod=vendor # mod有三个取值 # mod can be '', 'readonly', or 'vendor' # 两种赋值方式都可以 -mod='' -mod ''
replace
让原本依赖的 github.com/repo/pkg 包,实际使用 github.com/your-fork/pkg@version。
go mod edit -replace github.com/repo/pkg=github.com/your-fork/pkg@version
清缓存
go clean -modcache
go.mod & go.sum
go.mod:依赖列表和版本约束。
go.sum:记录module文件hash值,用于安全校验。
最佳实践
go mod不推荐使用vendor,不要将vendor提交到版本控制。
提交go.mod,可以忽略go.sum,因为会根据校验sum跨平台可能报错。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Google成功的七堂课
罗耀宗 / 电子工业出版社 / 2005-7 / 28.00元
Google是全球使用人数最多的搜索引擎,在短短几年内,Google从斯坦福大学的实验室,茁壮成长为举世瞩目的IT业超级巨人,他们的成功绝非偶然,尤其是在网络泡沫破灭,行业一片萧条之际,它的崛起更为IT业带来一缕曙光。作者从趋势观察家的角度,以讲座的形式,向读者讲述Google成功的关键因素:破除因循守旧、不断打破常规,核心技术领先、做出了“更好的捕鼠器”,使得Google在搜索技术方面远远超越对......一起来看看 《Google成功的七堂课》 这本书的介绍吧!