Go Module 依赖管理

依赖管理的优点

  1. 代码复用:轻松的引入外部库和框架,避免重复造轮子。
  2. 版本控制:合理管理依赖项的版本确保项目的稳定性。控制版本防止因外部库接口变化导致项目出现问题或不稳定。
  3. 安全性:使用受信任且经过测试的依赖库提高项目安全性。
  4. 维护和更新:简化依赖的维护和更新,轻松升级外部库。
    等等一些优点。

Go Module 介绍

Go ModuleGo1.11版本引入的官方依赖管理工具。并且从Go1.13版本开始,Go Module成为了默认的依赖管理工具。

GO111MODULE

要使用Go Module之前,需要设置GO111MODULE环境变量。这个环境变量是有三个参数:onoff以及auto
GO111MODULE=off禁用模块支持。
GO111MODULE=on启用模块支持。
GO111MODULE=auto,并且项目根目录下存在 go.mod 文件时,Go Module 会启用,且该项目可以位于 $GOPATH/src 之外。
总的来说, 开启了GO111MODULE=on,就可以使用Go Module。非常方便快捷。使用GO Module管理依赖后就会在项目设置新建两个文件go.modgo.sum

go.mod、go.sum 简单说明

go.mod 是 Go Module 的清单文件,记录项目的模块信息和依赖项的版本信息,确保版本控制和构建的可重复性。
go.sum 是 Go Module 的验证和安全性文件,记录项目的依赖模块及其哈希值,保证依赖的完整性和安全性。

go mod命令

常用的go mod命令如下:
go mod download 下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录)
go mod edit 编辑go.mod文件 关于edit的更多用法
go mod graph 打印模块依赖图
go mod init 初始化当前文件夹, 创建go.mod文件
go mod tidy 增加缺少的module,删除无用的module
go mod vendor 将依赖复制到vendor下
go mod verify 校验依赖
go mod why 解释为什么需要依赖

创建项目示例:

  1. 初始化模块:在你的项目根目录下打开终端或命令行工具,运行以下命令来初始化一个 Go Module:go mod init <module-name>
  2. 获取依赖和更新依赖: 使用 go get 命令来获取依赖项的最新版本。
  3. 导入依赖: 使用import关键字导入。

我用ChatGPT生成的示例如下:
简单例子.jpg