我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么使用golang开发中的godep

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么使用golang开发中的godep

本篇内容主要讲解“怎么使用golang开发中的godep”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用golang开发中的godep”吧!

    介绍

    godep是解决包依赖的管理工具,目前最主流的一种,原理是扫描记录版本控制的信息,并在go命令前加壳来做到依赖管理

    • godep 建议在 golang 1.6 以后使用

    • godep 依赖 vendor 

    • 请做好 vendor 管理

    安装

    https://github.com/tools/godep

    go get -u -v github.com/tools/godep

    成功安装后,在$GOPATHbin目录下会有一个godep可执行的二进制文件,后面执行的命令都是用这个,建议这个目录加入到全局环境变量中

    包管理使用 godep

    以下命令都是在工程的根目录运行

    拉取依赖 restore 用于开发

    godep restore

    建议开发过程使用这个命令来同步依赖库

    如果下载的项目中只有Godeps.json文件,而没有包含第三库则可以使用godep restore这个命令将所有的依赖库下来到$GOPATH\class="lazy" data-src中 用于开发

    godep restore执行时,godep会按照Godeps/Godeps.json内列表,依次执行go get -d -v来下载对应依赖包到GOPATH路径下

    如果某个原先的依赖包保存路径(GOPATH下的相对路径)与下载url路径不一致,比如kuberbetes在github上路径是github.com/kubernetes,而代码内import则是my.io,则会导致无法下载成功,也就是说godep restore不成功。这种只能手动,比如手动创建$GOPATH/my.io目录,然后git clone

    检出依赖 save

    godep save
    • 自动扫描当前目录所属包中import的所有外部依赖库(非系统库)

    • 将所有的依赖库下来下来到当前工程中,产生文件 Godeps\Godeps.json 文件

    • 在没有 Godeps` 文件的情况下,生成模组依赖目录vendor`文件夹

    如果是开发依赖使用三方库,需要固定使用某个版本,请完全提交Godeps`和vendor`文件夹

    低版本的 godep 生成的是Godeps/_workspace,建议升级

    godep save能否成功执行需要有两个要素:

    • 当前或者需扫描的包均能够编译成功:因此所有依赖包事先都应该已经或go get或手工操作保存当前GOPATH路径下

    • 依赖包必须使用了某个代码管理工具(如git,hg):这是因为godep需要记录revision

    这个命令用于编译构建的,三方构建工具需要额外配置构建参数

    godep 编译运行 build

    项目用godep管理后,要编译和运行项目的时候再用go run和go build显然就不行

    因为go命令是直接到GOPATH目录下去找第三方库,且在1.6以后支持vendor方式编译,而使用godep下载的依赖库放到Godeps/workspace目录下的,但是不影响继续使用依赖GOPATH目录,所以与三方工具本身不冲突

    故使用

    godep go build XXX

    godep中的go命令,就是将原先的go命令加了一层壳,执行godep go的时候,会将当前项目的workspace目录加入GOPATH变量中

    Godeps目录的作用

    godep save时godep把所有依赖包代码从GOPATH路径拷贝到Godeps目录下,并去除代码管理目录。这个用处主要是为了支撑godep go tool的一系列操作,尤其是git clone了代码库下来后,通常直接用godep go install xxx即可完成编译,一定程度上能够缓解golang比较严格的代码路径和包管理带来的烦恼。

    而在使用IDE时,可以通过把vendor添加到GOPATH实现代码跳转和编译等功能,比较方便

    godep其他命令

       save     list and copy dependencies into Godeps   go       run the go tool with saved dependencies   get      download and install packages with specified dependencies   path     print GOPATH for dependency code   restore  check out listed dependency versions in 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

    到此,相信大家对“怎么使用golang开发中的godep”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    怎么使用golang开发中的godep

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

    下载Word文档

    猜你喜欢

    怎么使用golang开发中的godep

    本篇内容主要讲解“怎么使用golang开发中的godep”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用golang开发中的godep”吧!介绍godep是解决包依赖的管理工具,目前最主流
    2023-06-25

    Golang开发之接口怎么使用

    今天小编给大家分享一下Golang开发之接口怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Golang的接口是什么在
    2023-07-05

    golang函数与goroutine在web开发中的使用

    在 Web 开发中使用 Go 函数与 Goroutine在 Go 语言中,函数作为独立的代码块,可用于实现特定的任务。Goroutine 是 Go 语言实现并发的一种机制,它允许函数同时协作执行。本文将探讨如何在 Web 开发中有效利用函
    golang函数与goroutine在web开发中的使用
    2024-04-25

    golang中的.()怎么使用

    这篇文章主要介绍“golang中的.()怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“golang中的.()怎么使用”文章能帮助大家解决问题。什么是.()用法?在golang中,.()被称为
    2023-07-05

    iOS开发中rangeOfString怎么使用

    rangeOfString是一个NSString类的方法,用于在字符串中查找指定的子字符串。它返回一个NSRange结构体,指示子字符串的位置和长度。用法示例:1. 在字符串中查找子字符串的位置:```objcNSString *strin
    2023-09-15

    iOS开发中AvaudioPlayer怎么使用

    在iOS开发中,你可以使用AVAudioPlayer类来播放音频文件。下面是使用AVAudioPlayer的基本步骤:1. 导入AVFoundation框架:```swiftimport AVFoundation```2. 创建AVAudi
    2023-09-13

    Android开发中synchronized怎么使用

    今天小编给大家分享一下Android开发中synchronized怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。sy
    2023-07-06

    iOS开发中nstimeinterval怎么使用

    NSTimeInterval是一个双精度浮点型的时间间隔,它表示自2001年1月1日午夜(GMT)以来的秒数。在iOS开发中,我们可以使用NSTimeInterval来进行时间的计算和处理。1. 创建NSTimeInterval变量:```
    2023-08-24

    Android开发中AlarmManager怎么使用

    在Android开发中,AlarmManager是一个用于在指定时间执行操作的类。以下是使用AlarmManager的步骤:1. 获取AlarmManager实例:```javaAlarmManager alarmManager = (Al
    2023-09-14

    Android开发中LayoutParams怎么使用

    LayoutParams是用于控制视图在布局中的位置和大小的类。下面是使用LayoutParams的一些示例代码:1. 设置视图的宽度和高度:```javaLinearLayout.LayoutParams params = new Lin
    2023-09-04

    Golang中的Mutex怎么使用

    本篇内容介绍了“Golang中的Mutex怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Mutex基本概念Mutex 是 Go 语言
    2023-07-05

    Golang中的WaitGroups怎么使用

    本篇内容介绍了“Golang中的WaitGroups怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是WaitGroupsWait
    2023-07-05

    Golang中的interface怎么使用

    这篇文章主要讲解了“Golang中的interface怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Golang中的interface怎么使用”吧!万能类型interface在Jav
    2023-06-27

    Golang中的RWMutex怎么使用

    本篇内容主要讲解“Golang中的RWMutex怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Golang中的RWMutex怎么使用”吧!RWMutex 的整体模型正如 RWMutex
    2023-07-05

    Golang中的sync.Cond怎么使用

    本文小编为大家详细介绍“Golang中的sync.Cond怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Golang中的sync.Cond怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1. 基本
    2023-07-05

    golang并发模型怎么使用

    Golang的并发模型是通过goroutine和channel来实现的。1. Goroutine: Goroutine是轻量级的线程,可以同时执行多个goroutine。可以使用关键字go来启动一个goroutine,例如:```go fu
    2023-08-23

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录