go mod依赖管理

案例素材

# 依赖包
github.com/gin-gonic/gin@v1.9.0
golang.org/x/cryto@v0.0.0
github.com/golang/cryto@v1.2.3
# 插件
github.com/google/gops@latest

go.mod文件

// 指定module名
module gomod
// 指定go sdk 版本
go 1.19
// 当前module(项目)依赖的包,通过 require 指定
require (
    github.com/bytedance/sonic v1.8.0 //indirect
)
// 排除第三方包,在确认第三方依赖某个版本存在bug的情况下,可以采用排除的方式
exclude (
    // dependency latest
)
// 修改依赖包的路径或版本,当依赖包发生迁移 或者原始包访问不到需要使用代理时,
// 通过replace替换原始包的路径和版本
// 可以将依赖包替换为本地包
replace (
    // source latest => target latest
)
// 撤回
// 当前项目作为其他项目的依赖,如果某个版本出现了问题则撤回该版本
retract (
    v1.0.0
    v1.0.2
)

go mod命令

# 将模块下载到本地缓存,需要指定模块路径及版本号
go mod download
# 例如
go mod download github.com/gin-gonic/gin@v1.9.0

# 初始化一个新的模块到当前目录,例如: go mod init gomod
go mod init
# 例如
go mod init gomodcase

# 依赖对齐: 添加缺少的依赖,删除未使用的依赖
go mod tidy

# 通过工具或脚本编辑go.mod
go mod edit
# 例如
# 添加依赖项
go mod edit -reguire="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 -exlude="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/get/clean

# 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/ginv1.9.0

# go clean 清理临时目录中的文件
# 例如: 清理整个module下载的缓存文件
go clean -modcache
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值