3.go-mod依赖管理

系列文章目录

提示:文章写的差不多的时候补上



前言

go 语言项目中对于第三方库和插件采用go mod 的方式管理go 工程依赖的包。


一、go mod 文件介绍

# 指定模块名
module godemobuild(模块名字,工程名)

# go  sdk 版本
go 1.19

// 当前module(项目)依赖的包
require (    
    // 依赖包   版本    
    //dependency latest
)


// 排除第三方包。
exclude (
    //排除依赖包名字   版本
    dependency      latest
)

//替换
// 第三方库下载路径的替换
// 修改依赖包的路径或版本
// 1. 依赖包发生迁移
// 2. 原始包无法访问(需要代理)
// 3.使用本地包替换原始包(重写了第三方库,需要本地包)

replace (     
    //源路径 版本  替换 目标的版本     
    source latest => target latest
)


// 撤回
// 当前项目作为其它项目的依赖的时候;如果某个版本出现问题,撤回该版本。

retract (     
    //版本号     
    v1.0.0
  )

二、go mod 常用命令

1.常用命令总结

命令如下(示例):

#1. 将模块下载到本地缓存,需要指定模块路径及版本号
// 本地缓存位置 GOPATH=E:\GOwork\path\pkg
go  mod  download

# 例如  下载当前包不会下载相关的依赖
go mod download github.com/gin-gonic/gin@v1.9.0


# 2. 初始化一个新的模块到当前目录
go mod init

# 例如
go  mod init gomodcase

# 3. 添加缺少的依赖,删除未使用的依赖
go  mod tidy

# 4. 通过工具或脚本编辑go.mod
go mod edit
# 例如
# 添加依赖
go mod edit -require="github.com/tin-gonic/gin@v1.90"

# 替换路径,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 
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.go mod 中最常用命令

代码如下(示例):

go  mod tidy
比如下载里一个新的项目使用该命令就会把响应的依赖全部下载下来

# 初始化一个新的模块到当前目录
go mod init

3. 常用命令

# 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/jgin-gonic/gin@v1.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、付费专栏及课程。

余额充值