内容简介:如同每年写前端的时候都要学习新框架一样,几乎每次写新的golang项目,我们都能学到新的依赖管理方式。 --埃里克.杨Go在最新1.11版本,正式启用了真官方开发的包管理工具module,已经集成到go命令中,它以前的名字叫要是想快速弄懂这东西怎么玩,看
如同每年写前端的时候都要学习新框架一样,几乎每次写新的golang项目,我们都能学到新的依赖管理方式。 --埃里克.杨
Go在最新1.11版本,正式启用了真官方开发的包管理工具module,已经集成到 go 命令中,它以前的名字叫 vgo 。
要是想快速弄懂这东西怎么玩,看 官方wiki 里啰啰嗦嗦的介绍肯定要被光速劝退的,本篇的内容就是啃完这个wiki,并把重要的部分提取出来。
使用
初始化
在哪用?你一定要在GOPATH外面创建你的项目。(没错,这门逗比语言又在教育你项目目录应该放在哪了)如果你想在GOPATH里用,需要先设置 GO111MODULE=on
-
进入到项目中,用
go mod init github.com/you/hello
init后面那段东西是你的包名。它会帮你创建一个 go.mod
文件,这个文件会被go工具链接管,一般来说不需要手工修改它,当你用 go get
之类的命令时,它会帮你修改这个文件。
添加/指定依赖
通过 go get
命令来添加依赖,依赖的包及其版本会被记录在 go.mod
,包名、版本及哈希值会被记录到 go.sum
这个文件中。注意,这个 go.sum
并不是一个lock文件。
go get github.com/gorilla/mux go get github.com/gorilla/mux@v1.6.2 go get github.com/gorilla/mux@'<v1.6.2' go get github.com/gorilla/mux@e3702bed2
升级依赖
go get -u go get -u=patch
补全/清理依赖
-
go mod tidy
这个命令会下载缺失依赖,并清理无用的依赖(包括清理go.mod中的记录)
概念
模块 Module
模块是一个包及其依赖的一系列特定版本的包所形成的集合。模块中记录有明确的版本依赖。通常一个git仓库的项目就是一个模块,但也可以在同一个仓库中维护多个模块。模块采用语义版本来定义版本号。
语义版本 Semantic versioning
v(major).(minor).(patch)
- major: 做了不兼容的升级,升这个
- minor: 向前兼容的升级,升这个
- patch: 未改变功能,只是修了bug之类的,升这个
- 开头的那个v是不能省略掉的
参考
总结
不要用这辣鸡玩意,请使用dep: https://github.com/golang/dep
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Golang官方依赖管理工具dep学习使用笔记
- 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包
- 浅析依赖倒转、控制反转、IoC 容器、依赖注入。
- 亦来云被声讨“八宗罪” 官方群和官方已决裂
- Angular 4 依赖注入教程之五 FactoryProvider配置依赖对象
- Gradle构建SpringBoot程序依赖管理之依赖版本自动控制
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Four
Scott Galloway / Portfolio / 2017-10-3 / USD 28.00
NEW YORK TIMES BESTSELLER USA TODAY BESTSELLER Amazon, Apple, Facebook, and Google are the four most influential companies on the planet. Just about everyone thinks they know how they got there.......一起来看看 《The Four》 这本书的介绍吧!