转:https://testerhome.com/topics/16980
----------------------------------------------
go mod 解决 Go 语言的包依赖问题
codeskyblue · 2018年11月22日 · 最后由 星 回复于 2018年11月23日 · 2695 次阅读
受众
学习过Go的人,入门即可
go mod命令
随着Go 1.11的发布,go开始支持mod子命令
这个命令解决了Go依赖更新的问题。刚开始学起来有一点难度,不过学会了之后,会发现这玩意比原来的 vendor好太多。
官方还专门弄了一个https://goproxy.io网站,专门方便我们这些国内的用户。
先看下自带的帮助。
$ go mod
Go mod provides access to operations on modules.
Note that support for modules is built into all the go commands,
not just 'go mod'. For example, day-to-day adding, removing, upgrading,
and downgrading of dependencies should be done using 'go get'.
See 'go help modules' for an overview of module functionality.
Usage:
go mod <command> [arguments]
The commands are:
download download modules to local cache
edit edit go.mod from tools or scripts
graph print module requirement graph
init initialize new module in current directory
tidy add missing and remove unused modules
vendor make vendored copy of dependencies
verify verify dependencies have expected content
why explain why packages or modules are needed
Use "go help mod <command>" for more information about a command.
想学好go mod命令,推荐3篇文章,阅读顺序有先后。
-
https://roberto.selbach.ca/intro-to-go-modules/
这是Roberto Selbach大神写的这篇 Step by step的 go mod入门文章,非常好理解
-
https://github.com/golang/go/wiki/Modules
go mod的官方文档,想了解的多一点最好还是通读一下
-
https://roberto.selbach.ca/go-proxies/
最后还有一篇介绍GOPROXY的文章,比较适合对go mod熟悉之后再看
使用感受
感觉go mod应该是受了 npm 的package.json 启发,总体而言比过去的vendor好了很多,但是如果要修改依赖库,还需要再重新发布个版本,感觉调试起来不是很方便。