在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
什么是go modulego module是go1.11版本之后推出来的版本管理工具,并且在go1.13之后默认支持。使用go module之后可以轻松的帮你告别gopath,那么什么是gopath呢? GOPATHGOPATH是go的环境变量,设置GOPATH vi /etc/profile export GOROOT=/usr/local/go #设置为go安装的路径 export GOPATH=$HOME/gocode #默认安装包的路径 export PATH=$PATH:$GOROOT/bin:$GOPATH/bin 其中GOPATH包含3个子目录,为
环境准备go1.11版本后启用go module需要开启GO11MODULE,并且确保项目不在GOPATH中。设置参数为on, off, auto
当参数设置为on,开启成功。使用时会生成go.mod和go.sum两个文件。 加速下载,设置GOPROXY go1.11版本后可设置: export GOPROXY=https://goproxy.cn go 1.13版本默认为: export GOPROXY=https://proxy.golang.or(在国内很慢) 所有我一般设置为https://goproxy.cn 或阿里源 https://mirrors.aliyun.com/goproxy/ 初始化常用命令 go mod download 下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录) go mod edit 编辑go.mod文件 go mod graph 打印模块依赖图 go mod init 初始化当前文件夹, 创建go.mod文件 go mod tidy 增加缺少的module,删除无用的module go mod vendor 将依赖复制到vendor下 go mod verify 校验依赖 go mod why 解释为什么需要依赖 比如对于从git拉取到本地的项目可直接使用go mod tidy生成依赖包。而对于一个新项目,则可使用go mod init 初始化 go mod vender
go get & replace对于项目中的新包可以使用go get 去下载。如
replace本地包替换 基于国内防火墙的问题,可以使用,如 replace packagepath/pkg v0.0.0 => github.com/packagepath/pkg v0.0.0 godep在引用go mod 之前。go采用godep来管理目录。或者直接本地GOPATHL路径(GOPATH过于繁琐) 安装 go get github.com/tools/godep 使用时会引用一个vendor目录,这样代码会首先去查找vendor目录 ├── Gopkg.lock ├── Gopkg.toml ├── main.go └── vendor ├── github.com │ ├── gin-contrib │ ├── gin-gonic │ ├── golang │ ├── mattn │ └── ugorji ├── golang.org │ └── x └── gopkg.in ├── go-playground 常用命令 godep save 将依赖项输出并复制到Godeps.json文件中 godep go 使用保存的依赖项运行go工具 godep get 下载并安装具有指定依赖项的包 godep path 打印依赖的GOPATH路径 godep restore 在GOPATH中拉取依赖的版本 godep update 更新选定的包或go版本 godep diff 显示当前和以前保存的依赖项集之间的差异 godep version 查看版本信息 比如你在新项目中使用godep save时会在当前项目中创建 小结在go1.13后默认支持go mod,所以还是最好使用go mod,并且管理项目也很方便快捷。 一般情况,go mod init 和 go mod tidy 两个命令就够用了。
|
请发表评论