内容简介:如同每年写前端的时候都要学习新框架一样,几乎每次写新的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程序依赖管理之依赖版本自动控制
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python语言程序设计
[美]梁勇(Lang Y. D.) / 李娜 / 机械工业出版社 / 2015-4 / 79.00元
本书采用“问题驱动”、“基础先行”和“实例和实践相结合”的方式,讲述如何使用Python语言进行程序设计。本书首先介绍Python程序设计的基本概念,接着介绍面向对象程序设计方法,最后介绍算法与数据结构方面的内容。为了帮助学生更好地掌握相关知识,本书每章都包括以下模块:学习目标,引言,关键点,检查点,问题,本章总结,测试题,编程题,注意、提示和警告。 本书可以作为高等院校计算机及相关专业Py......一起来看看 《Python语言程序设计》 这本书的介绍吧!