Go Module常用命令@TOC
Go Module常用命令
go
go mod init #初始化go.mod
go mod tidy #更新依赖文件
go mod download #下载依赖文件
go mod vendor #将依赖转移至本地的vendor文件
go mod edit #手动修改依赖文件
go mod graph #打印依赖图
go mod verify #校验依赖
go mod why -m <pkg> #来查看是被哪个依赖引入的
go list -u -m all #查看所有以升级依赖版本
go mod edit -fmt/-require=/-droprequire= #格式化/添加依赖/移除依赖项
Go Module介绍
go module是go官方自带的go依赖管理库,在1.13版本正式推荐使用
go module可以将某个项目(文件夹)下的所有依赖整理成一个 go.mod 文件,里面写入了依赖的版本等
使用go module之后我们可不用将代码放置在src下了
设置Go Module
查看当前golang env配置
go
go env
1.13版本GO111MODULE 默认是auto, 1.13+版本根据目录下有没有go.mod文件判断是否开启Module,可以手动设置为on/off
go
go env -w GO111MODULE="on"
设置代理 go env -w GOPROXY=下面代理的其中一个
go
htps://goproxy.io
https://goproxy.cn (七牛云)
https://mirrors.aliyun.com/go...(阿里云)
https://mirrors.cloud.tencent...(腾讯云)
https://athens.azurefd.net(微软)
使用Go Module
一、初始化 在项目根目录下会生成go.mod文件
go
go mod init [模块名]
二、检测依赖
go
go mod tidy
三、下载依赖
需要先设置GOPROXY,依赖下载至$GOPATH/pkg/mod/下,并在项目根目录下生成go.sum文件
go
go mod download
go get 升级
- 运行 go get -u 将会升级到最新的次要版本或者修订版本(x.y.z, z是修订版本号, y是次要版本号)
- 运行 go get -u=patch 将会升级到最新的修订版本
- 运行 go get package@version 将会升级到指定的版本号version
- 运行go get如果有版本的更改,那么go.mod文件也会更改
四、导入依赖
将刚下载至GOPATH下的依赖转移到该项目根目录下的vendor(自动新建)文件下
go
go mod vendor
五、解决冲突
- module declares its path as: A but was required as: B
模块路径声明为A,需要改成B
**解决:**在go.mod文件中增加 replace A => B - 依赖包不同版本冲突
**解决:**使用别名
go
import(
v1 "github.com/v1"
v2 "github.com/v2"
)