真官方依赖管理Go Modules怎么玩

栏目: Go · 发布时间: 7年前

内容简介:如同每年写前端的时候都要学习新框架一样,几乎每次写新的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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

构建之法(第二版)

构建之法(第二版)

邹欣 / 人民邮电出版社 / 2015-7 / 59

软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较空洞乏味的课程。 但是软件工程的技术对于投身IT 产业的学生来说是非常重要的。作者邹欣有长达20年的一线软件开发经验,他利用业余时间在数所高校进行了长达6年的软件工程教学实践,总结出了在16周的时间内让同学们通过 “做中学 (Learning By Doing)” 掌握实用的软件工程技术的教学计划,并得到高校师生的积极反馈。在此基础上,作者对......一起来看看 《构建之法(第二版)》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具