Go Modules:Go 语言依赖管理的新篇章
今天我们来聊聊 Go 语言的依赖管理神器——Go Modules。
自从 Go 1.11 版本引入以来,Go Modules 已经成为了 Go 语言依赖管理的标准。接下来,我将用简单易懂的语言,带你一步步了解 Go Modules 的安装、使用和最佳实践。
Go Modules 简介
Go Modules 是 Go 语言官方推荐的依赖管理工具,它解决了以往使用GOPATH
时遇到的许多问题,如依赖冲突、版本控制等。
GOPATH 目录
在 Go Modules 问世之前,Go 语言使用GOPATH
环境变量来管理项目的工作空间,它包含三个子目录:
bin
:存储编译生成的二进制文件。pkg
:存储预编译的目标文件,加快后续编译速度。src
:存储所有.go
文件或源代码。在编写 Go 应用程序,程序包和库时,一般会以$GOPATH/src/github.com/foo/bar
的路径进行存放。
go mod 命令
Go Modules 通过go mod
命令行工具来管理依赖,你可以使用以下命令来查看所有可用的go mod
子命令:
常用 go mod 命令
go mod 环境变量
Go Modules 与一些环境变量紧密相关,这些环境变量可以调整 Go Modules 的行为。
GO111MODULE
GO111MODULE
控制模块支持的开启状态。
auto
:项目包含go.mod
文件时启用 Go modules(默认值)。on
:总是启用 Go modules。off
:禁用 Go modules。
设置方法:
GOPROXY
GOPROXY
用于设置 Go 模块代理,加速模块下载。
默认值:https://proxy.golang.org,direct
设置国内镜像站点:
GOSUMDB
GOSUMDB
用于确保下载的模块版本未被篡改。
默认值:sum.golang.org
国内用户可以通过设置GOPROXY
来间接访问GOSUMDB
。
GONOPROXY/GONOSUMDB/GOPRIVATE
这些环境变量用于处理私有模块。
GONOPROXY
:设置不走 Go Proxy 的 URL 规则。GONOSUMDB
:设置不检查哈希的 URL 规则。GOPRIVATE
:设置私有模块的 URL 规则。
通常,设置GOPRIVATE
即可:
使用 Go Modules 初始化项目
总结
通过今天的学习,我们了解了 Go Modules 的基本使用方法,包括环境变量的配置、项目的初始化、依赖的下载和更新等。Go Modules 作为 Go 语言官方推荐的依赖管理工具,极大地简化了项目管理的复杂性。
版权声明: 本文为 InfoQ 作者【左诗右码】的原创文章。
原文链接:【http://xie.infoq.cn/article/fd6ccf1327bc94a7fb38975fc】。文章转载请联系作者。
评论