Go Module 依赖管理
依赖管理的优点
- 代码复用:轻松的引入外部库和框架,避免重复造轮子。
- 版本控制:合理管理依赖项的版本确保项目的稳定性。控制版本防止因外部库接口变化导致项目出现问题或不稳定。
- 安全性:使用受信任且经过测试的依赖库提高项目安全性。
- 维护和更新:简化依赖的维护和更新,轻松升级外部库。
等等一些优点。
Go Module 介绍
Go Module
是Go1.11
版本引入的官方依赖管理工具。并且从Go1.13
版本开始,Go Module
成为了默认的依赖管理工具。
GO111MODULE
要使用Go Module之前,需要设置GO111MODULE
环境变量。这个环境变量是有三个参数:on
、off
以及auto
。
GO111MODULE=off禁用模块支持。
GO111MODULE=on启用模块支持。
GO111MODULE=auto,并且项目根目录下存在 go.mod 文件时,Go Module 会启用,且该项目可以位于 $GOPATH/src 之外。
总的来说, 开启了GO111MODULE=on
,就可以使用Go Module
。非常方便快捷。使用GO Module
管理依赖后就会在项目设置新建两个文件go.mod
和go.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 解释为什么需要依赖
创建项目示例:
- 初始化模块:在你的项目根目录下打开终端或命令行工具,运行以下命令来初始化一个 Go Module:
go mod init <module-name>
。 - 获取依赖和更新依赖: 使用
go get
命令来获取依赖项的最新版本。 - 导入依赖: 使用import关键字导入。
我用ChatGPT生成的示例如下: