Go语言包管理工具Godep的用法
IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《Go语言包管理工具Godep的用法》,聊聊包管理、工具、dep,我们一起来看看吧!
一、为什么要包管理
默认Go的第三方包都是放在Gopath的src目录下,而且这些包都没有版本号的概念,这样的可能会出现一些问题。
举个例子:当A同事将开发完程序之后,此时可能引用了一个第三方的包,过了不久之后,B同事接手了该项目,此时如果B同事通过go get 命令获取了包,而且包的版本进行了升级,恰巧这个包又不兼容以前的版本,这就会导致程序编译错误等问题。或者当这个维护的第三方包删除了,那么B同学则不能下载到该包。
由上面的例子就能知道,为什么需要进行包的依赖管理了。
go里面进行包依赖管理的工具有几个。godep就是其中之一。
二、安装godep
1.安装方法: go get github.com/tools/godep
2.验证是否安装成功:在shell里面键入 godep ,应该会出现帮助信息。
Usage: godep command [arguments] The commands are: save list and copy dependencies into Godeps //save命令主要是用于保存当前的依赖 go run the go tool with saved dependencies //主要是用于执行Go程序,相当于在原来的go命令上套了一层,因为涉及到了包管理 get download and install packages with specified dependencies //get命令主要是用于获取当前指定的依赖包 path print GOPATH for dependency code restore check out listed dependency versions in GOPATH //把依赖的包都下载到Gopath当中 update update selected packages or the go version //更新依赖的包 diff shows the diff between current and previously saved set of dependencies version show version info
三、演示如何使用godep
如下项目使用了第三方的包,那么我们就可以使用godep进行包管理
1. 在项目根目录,执行godep save
命令,如果执行成功,则会生成两个文件夹 Godeps 和 vendor
godep save 会把当前包所依赖的所有第三方包扫描出来,然后将源代码放在vendor目录下。
GoDeps保存的是第三方包的依赖信息
Vendor保存所有依赖的第三方包
可以查看一下Godep.json
{ "ImportPath": "godepDemo/protobuf", "GoVersion": "go1.10", "GodepVersion": "v80", "Deps": [ { "ImportPath": "github.com/golang/protobuf/proto", "Comment": "v1.3.2-1-g4c88cc3f", "Rev": "4c88cc3f1a34ffade77b79abc53335d1e511f25b" } ] }
Deps这一个字段里面保存着当前依赖包的路径、git提交的版本号信息。下次在拉下代码之后,执行Go build 就会执行Vendor里面的代码,这样就再也不用担心代码不一致的问题。
备注:当引用的第三方包要升级了怎么办,那么就修改Godep.json里面的提交的版本号就行了。
Godep是怎么实现版本管理的,可以参考下面这个图。
总结如何使用godep
- 1.保证程序能够正常编译
- 2.执行godep save 命令,执行之后会将所有的依赖的第三方包扫描出来,生成Godeps和Vendor目录
- 3.提交上面两个文件夹到自己的代码库,提交之后我们代码中的第三方依赖就固定下来了。
- 4.如果需要更新依赖的版本,那么直接更新godep.json里面的第三方包的版本号,然后再执行一次godep save,最后提交到我们的代码库就行了。
例如:可以查看一下我依赖的protobuf的commitId
然后更新一下Godeps.json里面的版本号
文中关于golang的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Go语言包管理工具Godep的用法》文章吧,也可关注golang学习网公众号了解相关技术文章。

- 上一篇
- Go语言实现文件上传

- 下一篇
- Go实现文件分片上传
-
- 美好的煎蛋
- 这篇文章出现的刚刚好,很详细,太给力了,mark,关注老哥了!希望老哥能多写Golang相关的文章。
- 2023-04-08 23:55:36
-
- 俭朴的咖啡
- 这篇技术贴真是及时雨啊,太全面了,很棒,收藏了,关注老哥了!希望老哥能多写Golang相关的文章。
- 2023-01-25 14:34:29
-
- 潇洒的火龙果
- 这篇文章内容太及时了,楼主加油!
- 2023-01-21 04:54:37
-
- 务实的信封
- 写的不错,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,帮助很大,总算是懂了,感谢师傅分享文章内容!
- 2023-01-15 15:24:54
-
- 伶俐的香菇
- 太给力了,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,看完之后很有帮助,总算是懂了,感谢作者分享博文!
- 2023-01-10 18:37:09
-
- 欣慰的雪糕
- 很有用,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,帮助很大,总算是懂了,感谢作者大大分享文章!
- 2023-01-10 05:10:21
-
- 爱笑的哈密瓜,数据线
- 好细啊,mark,感谢老哥的这篇博文,我会继续支持!
- 2023-01-09 20:32:32
-
- 激动的黑夜
- 这篇技术文章出现的刚刚好,太详细了,太给力了,码住,关注老哥了!希望老哥能多写Golang相关的文章。
- 2023-01-09 02:17:28
-
- 着急的小松鼠
- 这篇博文太及时了,很详细,很好,码起来,关注老哥了!希望老哥能多写Golang相关的文章。
- 2023-01-08 09:08:42
-
- 傻傻的舞蹈
- 很详细,收藏了,感谢up主的这篇文章内容,我会继续支持!
- 2023-01-06 01:45:57
-
- 高兴的悟空
- 太细致了,码住,感谢作者大大的这篇博文,我会继续支持!
- 2023-01-02 08:01:31
-
- Golang · Go教程 | 1小时前 |
- Golang文件IO测试:fstest模拟实战教程
- 303浏览 收藏
-
- Golang · Go教程 | 1小时前 |
- Golang打造K8s自定义调度器方法
- 162浏览 收藏
-
- Golang · Go教程 | 1小时前 |
- Go语言切片与数值转换技巧详解
- 384浏览 收藏
-
- Golang · Go教程 | 1小时前 |
- Golang定时器与时间格式化技巧详解
- 168浏览 收藏
-
- Golang · Go教程 | 2小时前 |
- Golang高效读取大文件方法解析
- 422浏览 收藏
-
- Golang · Go教程 | 2小时前 |
- Golang插件系统测试:plugin.Open隔离解析
- 373浏览 收藏
-
- Golang · Go教程 | 2小时前 |
- Golangnet/http教程:搭建服务器与客户端方法
- 217浏览 收藏
-
- Golang · Go教程 | 2小时前 |
- GolangCookie与Session管理全解析
- 225浏览 收藏
-
- Golang · Go教程 | 2小时前 |
- Golang原子替换:rename实现与事务解析
- 161浏览 收藏
-
- Golang · Go教程 | 2小时前 |
- Gin框架构建RESTAPI入门教程
- 455浏览 收藏
-
- Golang · Go教程 | 2小时前 |
- Golang日志优化:异步缓冲提升效率
- 387浏览 收藏
-
- Golang · Go教程 | 2小时前 |
- Golang覆盖率统计方法与工具使用技巧
- 119浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 511次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 498次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- 千音漫语
- 千音漫语,北京熠声科技倾力打造的智能声音创作助手,提供AI配音、音视频翻译、语音识别、声音克隆等强大功能,助力有声书制作、视频创作、教育培训等领域,官网:https://qianyin123.com
- 95次使用
-
- MiniWork
- MiniWork是一款智能高效的AI工具平台,专为提升工作与学习效率而设计。整合文本处理、图像生成、营销策划及运营管理等多元AI工具,提供精准智能解决方案,让复杂工作简单高效。
- 89次使用
-
- NoCode
- NoCode (nocode.cn)是领先的无代码开发平台,通过拖放、AI对话等简单操作,助您快速创建各类应用、网站与管理系统。无需编程知识,轻松实现个人生活、商业经营、企业管理多场景需求,大幅降低开发门槛,高效低成本。
- 106次使用
-
- 达医智影
- 达医智影,阿里巴巴达摩院医疗AI创新力作。全球率先利用平扫CT实现“一扫多筛”,仅一次CT扫描即可高效识别多种癌症、急症及慢病,为疾病早期发现提供智能、精准的AI影像早筛解决方案。
- 98次使用
-
- 智慧芽Eureka
- 智慧芽Eureka,专为技术创新打造的AI Agent平台。深度理解专利、研发、生物医药、材料、科创等复杂场景,通过专家级AI Agent精准执行任务,智能化工作流解放70%生产力,让您专注核心创新。
- 97次使用
-
- Go语言包和包管理详解
- 2023-02-24 334浏览
-
- Go代码检查的推荐工具及使用详解
- 2023-01-07 491浏览
-
- GO语言包管理工具go mod以及包详解
- 2022-12-29 372浏览
-
- Go语言自定义linter静态检查工具
- 2022-12-27 203浏览
-
- Golang开发Go依赖管理工具dep安装验证实现过程
- 2022-12-23 414浏览