本文摘自php中文网,作者尚,侵删。

Go Modules 介绍
Modules是Go 1.11中新增的实验性功能,基于vgo演变而来,是一个新型的包管理工具。
Go 1.11 之前的包管理工具都是基于PATH或者vendor目录,并不能很好的解决不同版本依赖问题。Modules是在GOPATH之外一套新的包管理方式。使用Modules可以完全不依赖GOPATH。
注意:Go Modules 需要Go 1.11以上版本
使用指南
Example
1、在GOPATH之外创建一个目录
1 2 |
|
2、初始化Module
1 2 |
|
3、编辑hello.go
1 2 3 4 5 6 7 8 |
|
4、编译并运行
1 2 3 |
|
注意: go build 会自动下载依赖包,而golang.org/x/...之类的包需要翻墙,可以添加GOPROXY环境变量设置代理:
1 |
|
此时,go.mod文件会自动更新,它包含项目所需的依赖项和对应版本号
1 2 3 |
|
除了go.mod之外,go还维护一个名为go.sum的文件,其中包含特定模块版本的预期哈希值:
1 2 3 4 5 6 7 |
|
go使用go.sum文件确保这些模块的未来下载与第一次下载相同,以此确保项目所依赖的模块不会出现意外更改。
go.mod和go.sum都应检入版本控制。
日常WorkFlow
典型的日常工作流程可能是:
根据需要在.go代码中添加import语句
标准命令(如go build或go test)会根据需要自动添加新的依赖项(更新go.mod并下载新的依赖项)
需要特定版本的时候,可以使用go get指定特定版本如go get foo@v1.2.3, go get foo@master, go get foo@e3702bed2,或者直接编辑go.mod文件
常用的命令:
go list -m all 查看项目中所有直接和间接依赖关系
go mod tidy 清除未使用的依赖项,并添加其他所需依赖项
go mod vendor 将依赖复制到vendor目录下
以上就是Go Modules使用详解的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
用 Go + websocket 快速实现一个 chat 服务
Go 解析日期格式-解决 parsing time xx as xx: cannot parse xx as xx 错误
client-Go获取k8s集群内部连接,实现deployment的增删改查
更多相关阅读请进入《Go》频道 >>

Go语言101
一个与时俱进的Go编程知识库。