当前位置:网站首页>GO Module的依赖管理(二)
GO Module的依赖管理(二)
2022-08-02 03:35:00 【linyxg】
一、GO Module依赖管理
1. 给Go Module添加新的依赖
例如:添加github.com/sirupsen/logrus依赖
(1). 更新源码
import语句导入github.com/sirupsen/logrus,且在mian函数中调用logrus包
package main
import (
"github.com/sirupsen/logrus" //当主版本号为0或1时,不需要在导入路径import上增加版本号
)
func main() {
logrus.Println("hello, go module mode")
}
(2). 下载依赖到本地缓存
//下面两条命令会将新增的依赖包下载到本地module缓存,并在 go.mod文件的require中新增此依赖及版本信息, 自动下载最新版本依赖
① 手动增加此依赖
命令:go get github.com/sirupsen/logrus
② 自动分析源码中依赖变化并下载
命令:go mod tidy //更推荐
2.升级或降低依赖版本
若主版本号不同,则两版本不兼容。如V1.1.3 和V2.1.3,主版本号1,2不相同,所以不兼容
命令:go list -m - versions github.com/sirupsen/logrus // 查看依赖所有的发布版本
// 方法一:go get 命令升降版本
命令:go get github.com/sirupsen/[email protected] // @后接升级或降低的版本号
// 方法二:go mod tidy
命令:go mod edit -require=github.com/sirupsen/[email protected] //指定所需的依赖版本
命令:go mod tidy //更新依赖
3.导入或升级主版本不为0或1的依赖
升级或降低不兼容版本依赖,同样操作,只需把v7改为所需要的主版本号即可
①以空导入的方式导入V7版本的依赖包
import (
_ "github.com/go-redis/redis/v7" // 符号 “_” 为空导入 ,意味着期望依赖包的init函数得到执行
)
②获取依赖到本地
命令:go get github.com/go-redis/redis/v7 //自动选择v7内最新的版本
4. 删除依赖
①删除 import 中此依赖导入那行信息
import (
_ "github.com/go-redis/redis/v7" //若删除此依赖则删除此行信息
)
②运行命令go mod tidy // 此命令会自动分析源码依赖,将不用的依赖从go.mod和go.sum中移除
5. 创建vendor
一般适用于不方便访问外部网络或CI/CD中
①建立vender目录
命令:go mod vender //实现在vendor下,创建了一份此项目依赖包的副本( vendor/modules.txt 记录了 vendor 下的 module 以及版本)
②基于vendor构建
命令: go build -mod=vendor //增加参数 -mod=vendor ,指定以vendor下的Go Mudule构建而不使用本地
边栏推荐
猜你喜欢
随机推荐
[Database] Four characteristics of transaction
【TCS3200 color sensor and Arduino realize color recognition】
Gartner 权威预测未来4年网络安全的8大发展趋势
flask简单接口实现
字符串哈希
运行时应用自我保护(RASP):应用安全的自我修养
逆序对数量与归并排序
进程(中):进程状态、进程地址空间
rosdep update失败解决办法(亲测有效)
Process (in): process state, process address space
【详解】线程池及其自定义线程池的实现
工作过程中问题汇总
TeamCode 产品 UI 全新升级,快来体验吧
408-Binary tree-preorder inorder postorder level traversal
Lightly 支持 Markdown 文件在线编写(文中提供详细 Markdown 语法)
Comparison between Boda Industrial Cloud and Alibaba Cloud
进程(下):进程控制、终止、等待、替换
学习(四):显示FPS,和自定义显示调试
【 LeetCode 】 design list
网络安全nvr,用于对接电网B接口(国网B接口)视频监控系统B接口








