一、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/logrus@v1.7.0        // @后接升级或降低的版本号

// 方法二:go mod tidy
命令:go mod edit -require=github.com/sirupsen/logrus@v1.7.0    //指定所需的依赖版本
命令: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构建而不使用本地
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐