Go组队学习 8.包管理

Go Modules

Modules是相关Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性

Go Modules的使用方法

首先需要设置环境变量,可以使用go env命令查看当前配置

$ go env
GO111MODULE="auto"
GOPROXY="https://proxy.golang.org,direct"
GONOPROXY=""
GOSUMDB="sum.golang.org"
GONOSUMDB=""
GOPRIVATE=""

如果需要更改 GO111MODULE ,可以使用go env命令

go env -w GO111MODULE=on

GO111MODULE
auto:只要项目包含了 go.mod 文件的话启用 Go modules,目前在 Go1.11 至 Go1.14 中仍然是默认值。
on:启用 Go modules,推荐设置,将会是未来版本中的默认值。
off:禁用 Go modules,不推荐设置。
GOPROXY
此环境变量主要用于设计Go Module的代理
GOSUMDB
此环境变量用于在拉取模块的时候保证模块版本数据的一致性。

初始化模块

Go Modules的使用方法比较灵活,在目录下包含go.mod文件即可

首先通过如下命令创建一个新的Module

go mod init [module name]

然后当前目录会生成go.mod文件,其内容为:

module ModuleName

go 1.15

Go Modules会自动管理包,如果需要引入依赖,只需要在go.mod下添加以下内容(以gorose为例子)

module ModuleName
 
require (
	github.com/gohouse/gorose v1.0.5
)

go get

Go组队学习 8.包管理

常用命令

go mod init  // 初始化go.mod
go mod tidy  // 更新依赖文件
go mod download  // 下载依赖文件
go mod vendor  // 将依赖转移至本地的vendor文件
go mod edit  // 手动修改依赖文件
go mod graph  // 查看现有的依赖结构
go mod verify  // 校验依赖
上一篇:PHP字符串函数与mbstring函数


下一篇:什么是从我的PHP网站过滤无效的utf8?