广告
返回顶部
首页 > 资讯 > 后端开发 > GO >Go语言包管理工具Godep的用法
  • 376
分享到

Go语言包管理工具Godep的用法

2024-04-02 19:04:59 376人浏览 八月长安
摘要

一、为什么要包管理 默认Go的第三方包都是放在Gopath的src目录下,而且这些包都没有版本号的概念,这样的可能会出现一些问题。 举个例子:当A同事将开发完程序之后,此时可能引用了

一、为什么要包管理

默认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里面的版本号

到此这篇关于Go使用Godep进行包管理的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

您可能感兴趣的文档:

--结束END--

本文标题: Go语言包管理工具Godep的用法

本文链接: https://www.lsjlt.com/news/120965.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Go语言包管理工具Godep的用法
    一、为什么要包管理 默认Go的第三方包都是放在Gopath的src目录下,而且这些包都没有版本号的概念,这样的可能会出现一些问题。 举个例子:当A同事将开发完程序之后,此时可能引用了...
    99+
    2022-11-11
  • GO语言包管理工具go mod以及包详解
    目录1.GO中包的定义与介绍2. 包管理工具 go mod2.1 自定义包 (可以包含多个go文件)2.1.1 建立项目并go mod init初始化2.1.2 自定义一个包(文件夹...
    99+
    2022-11-13
  • 基于NPM的GO语言依赖管理工具有哪些?
    随着Go语言的流行,越来越多的人开始使用它来开发应用程序。但是,与其他语言一样,Go语言也需要管理依赖项。为了解决这个问题,人们开始使用NPM来管理Go语言的依赖项。本文将介绍基于NPM的Go语言依赖管理工具。 dep dep是一个Go...
    99+
    2023-06-21
    响应 容器 npm
  • GO语言中HTTP打包文件的工具推荐!
    随着互联网技术的不断发展,Web应用程序的需求不断增加,如何提高Web应用程序的性能和效率成为了程序员们的重要任务。在这个过程中,HTTP打包文件工具的使用变得越来越重要。本文将介绍GO语言中HTTP打包文件的工具推荐,并结合演示代码详细...
    99+
    2023-06-24
    http 打包 文件
  • Golang中的包及包管理工具go mod详解
    目录一、包二、包管理工具go mod三、init函数四、使用第三方包一、包 1.包的种类:系统内置包、自定义包、第三方包。 (1)系统内置包:go语言自带包,如str.conv、fm...
    99+
    2022-11-11
  • Go 语言打包工具:如何快速打包你的项目?
    在 Go 语言开发中,我们经常需要将我们的代码打包成可执行文件或者库文件。幸运的是,Go 语言提供了一些非常方便的打包工具来帮助我们完成这项工作。在本文中,我们将介绍 Go 语言中常用的打包工具,并演示如何使用这些工具来快速打包你的项目。...
    99+
    2023-08-16
    打包 load unix
  • 包管理工具rpm和yum的用法
    包管理工具rpm和yum的用法一、rpm的用法rpm原本是Rde Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐收到其他发行版的采用,R...
    99+
    2022-10-18
  • Node.js打包管理工具NPM用法
    目录一、NPM使用介绍二、NPM全局安装和本地安装本地安装:全局安装:本地安装与全局安装命令:三、npm安装package.json四、npm安装模块五、模块的其他操作六、版本号七、...
    99+
    2022-11-13
  • go语言处理TCP拆包/粘包的具体实现
    目录part 1part 2part 3part 1 最近在学习go自带的rpc,看完了一遍想着自己实现一个codec,也就是自定义消息的序列化和反序列化。消息的序列化和反序...
    99+
    2022-06-07
    GO go语言
  • Path索引文件:Go语言中必备的文件管理工具!
    在Go语言中,文件管理是一个非常重要的方面。无论是在开发过程中还是在实际生产环境中,文件管理都是必不可少的。在Go语言中,我们通常使用Path索引文件来进行文件管理。在本文中,我们将深入探讨Path索引文件的使用方法以及其在Go语言中的重...
    99+
    2023-10-05
    path 索引 文件
  • Go语言中日期包(time包)的具体使用
    目录日期包常用函数定时器打印定时器终止定时器注意事项日期包 常用函数 time.Now(): 获取当前时间 package main import ( "fmt" "...
    99+
    2023-05-19
    Go 日期包 Go time
  • Node.js包管理工具npm和yarn的用法
    这篇文章主要讲解了“Node.js包管理工具npm和yarn的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Node.js包管理工具npm和yarn的用...
    99+
    2022-10-19
  • Python包管理工具pip用法详解
    pip提供我们各色各样的软件(第三方库),而这些第三方库又可以给我们实现各种各样不同的功能,科学计算、画图、操作文件、聊天…… 我们可以通过Cmd终端、P...
    99+
    2022-11-11
  • 打包工具哪家强?Go语言中的打包技巧大揭秘!
    随着Go语言的流行,越来越多的开发者开始使用它来编写应用程序。在开发过程中,打包是一个必不可少的环节,它可以将我们的代码、依赖包以及其他资源打包成一个可执行文件或者库。但是在Go语言中,有很多种打包工具可供选择,如何选择一个适合自己的工具...
    99+
    2023-10-14
    异步编程 编程算法 打包
  • Go语言的开发工具如何使用
    这篇文章主要讲解了“Go语言的开发工具如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言的开发工具如何使用”吧!json-to-go输入:[   &...
    99+
    2023-07-02
  • 详解Go语言中io/ioutil工具的使用
    目录读取文件写文件读取文件夹下所有文件信息创建临时文件和临时文件夹拷贝文件小结学习笔记,写到哪是哪。 接着上一篇,我们看看io/ioutil工具如何使用,简化文件操作。 读取文件 读...
    99+
    2022-11-13
  • Go语言驱动低代码应用引擎工具Yao开发管理系统
    目录前言Yao简介安裝使用基本使用创建数据模型编写接口编写界面总结前言 之前写过一篇关于阿里的低代码工具LowCodeEngine 的文章,发现大家还是挺感兴趣的。最近又发现了一款很...
    99+
    2022-11-13
  • Go 语言的打包和加载:使用哪种工具和技巧最好?
    Go 语言是一门优秀的编程语言,拥有出色的性能和可靠性。在开发过程中,我们经常需要打包和加载代码库。这些库可以是我们自己编写的,也可以是其他人编写的。本文将介绍 Go 语言中的打包和加载机制,并探讨使用哪种工具和技巧最好。 一、Go 语言...
    99+
    2023-08-16
    打包 load unix
  • 用NumPy和Go语言构建高效文件处理工具
    在日常工作和生活中,我们经常需要处理各种文件,如数据文件、文本文件、音频文件等等。而对于大量数据的处理,使用传统的文件读写方式可能会导致效率低下,甚至无法完成任务。为了提高处理效率,我们可以采用NumPy和Go语言结合的方式来构建高效的文...
    99+
    2023-08-05
    apache 文件 numy
  • 实用的Go语言开发工具及使用示例
    目录前言json-to-goyaml-to-gotable-to-go命令行调用Go 代码调用前言 孙悟空在花果山称王的时候,特意去了一趟东海,在那里淘到了如意金箍棒。因为身为一个山...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作