Go Modules使用详解
Go  /  管理员 发布于 4年前   370
Go Modules 介绍
Modules是Go 1.11中新增的实验性功能,基于vgo演变而来,是一个新型的包管理工具。
Go 1.11 之前的包管理工具都是基于PATH或者vendor目录,并不能很好的解决不同版本依赖问题。Modules是在GOPATH之外一套新的包管理方式。使用Modules可以完全不依赖GOPATH。
注意:Go Modules 需要Go 1.11以上版本
使用指南
Example
1、在GOPATH之外创建一个目录
$ mkdir -p /tmp/scratchpad/hello$ cd /tmp/scratchpad/hello
2、初始化Module
$ go mod init github.com/you/hellogo: creating new go.mod: module github.com/you/hello
3、编辑hello.go
package mainimport ( "fmt" "rsc.io/quote")func main() { fmt.Println(quote.Hello())}
4、编译并运行
$ go build$ ./helloHello, world.
注意: go build 会自动下载依赖包,而golang.org/x/...之类的包需要翻墙,可以添加GOPROXY环境变量设置代理:
export GOPROXY=https://goproxy.io
此时,go.mod文件会自动更新,它包含项目所需的依赖项和对应版本号
$ cat go.modmodule github.com/you/hellorequire rsc.io/quote v1.5.2
除了go.mod之外,go还维护一个名为go.sum的文件,其中包含特定模块版本的预期哈希值:
cat go.sumgolang.org/x/text v0.0.0-20170915032832-14c0d48ead0c h1:qgOY6WgZOaTkIIMiVjBQcw93ERBE4m30iBm00nkL0i8=golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=rsc.io/quote v1.5.2 h1:w5fcysjrx7yqtD/aO+QwRjYZOKnaM9Uh2b40tElTs3Y=rsc.io/quote v1.5.2/go.mod h1:LzX7hefJvL54yjefDEDHNONDjII0t9xZLPXsUe+TKr0=rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4=rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
go使用go.sum文件确保这些模块的未来下载与第一次下载相同,以此确保项目所依赖的模块不会出现意外更改。
go.mod和go.sum都应检入版本控制。
日常WorkFlow
典型的日常工作流程可能是:
根据需要在.go代码中添加import语句
标准命令(如go build或go test)会根据需要自动添加新的依赖项(更新go.mod并下载新的依赖项)
需要特定版本的时候,可以使用go get指定特定版本如go get [email protected], go get foo@master, go get foo@e3702bed2,或者直接编辑go.mod文件
常用的命令:
go list -m all 查看项目中所有直接和间接依赖关系
go mod tidy 清除未使用的依赖项,并添加其他所需依赖项
go mod vendor 将依赖复制到vendor目录下
更多go语言知识请关注go语言教程栏目。
以上就是Go Modules使用详解的详细内容,更多请关注其它相关文章!
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号