初始化一个新的模块到当前目录
go mod init
例如
go mod init project01
go.mod文件
//指定module名
module project01
//指定go sdk 版本
go 1.20
//当前module(项目)依赖的包,通过require指定
require (
github.com/bytedance/sonic v1.8.0
)
//排除第三方包,在确认第三方依赖某个版本存在bug的情况下,可以采用排除的方式
exclude (
// dependency latest
)
//修改依赖包的路径或版本,当依赖包发生迁移 或者原始包访问不到需要使用代理时,
//通过replace替换原始包的路径和版本
//可以将依赖包替换为本地包
replace (
//source latest => target latest
)
//当前项目作为其他项目的依赖时,如果某个版本出现问题,可以撤回
retract (
v1.0.0
v1.0.2
)
将模块下载到本地缓存,需要指定模块路径及版本号
go mod download
例如
go mod download github.com/gin-gonic/gin@v1.9.0
添加缺少的依赖,删除未使用的依赖
go mod tidy
通过工具或脚本编辑go.mod
go mod edit
例如
添加依赖项
go mod edit -require="github.com/gin-gonic/gin@v1.9.0"
替换路径,old[@version] 替换成 new[@version]
go mod edit -replace="golang.org/x/crypto@v0.0.0=github.com/golang/crypto@latest"
排除第三方依赖的某个版本
go mod edit -exclude="github.com/gin-gonic/gin@v1.9.0"
当前项目作为其他项目的依赖时,添加撤回版本用于排除有问题的版本
go mod edit -retract="v1.0.0"
go mod edit -retract="v1.1.0"
删除撤回版本记录
go mod edit -dropretract="v1.0.0"
根据go.mod中的依赖项制作vendor副本
有了vendor 副本,项目将不再依赖本地缓存
go mod vendor
验证依赖是否正确
go mod verify
返回对指定模块的依赖关系最短路径,解释为什么依赖指定包
go mod why
例如
go mod why github.com/go-playground/validator/v10
go install 安装可执行插件
go install github.com/google/gops@latest
go get 获取模块信息并更新go.mod文件
若本地缓存没有该模块,则下载模块; 若有则直接引用
例如:
go get github.com/gin-gonic/gin@v1.9.0
go get -u 更新模块依赖,并更新go.mod
go get github.com/gin-gonic/gin@v1.9.0
go clean 清理临时目录中的文件
例如: 清理整个module下载的缓存文件
go clean -modcache