[golang] Glide 包管理

时间:2022-09-19 10:43:23

一、概述

golang的包管理工具有很多,本篇幅主要介绍glide进行包管理。

二、安装及命令介绍

go get github.com/Masterminds/glide

glide create|init 初始化项目并创建glide.yaml文件.

glide get 获取单个包

  --all-dependencies 会下载所有关联的依赖包

  -s 删除所有版本控制,如.git

  -v 删除嵌套的vendor

glide install 安装包

glide update|up 更新包

三、案例测试

准备:本次测试的包是 github.com/mattn/go-adodb ,这个包其中有一个依赖包是 github.com/go-ole/go-ole

3.1 下载单个包

command:
glide get github.com/mattn/go-adodb glide.lock:
hash: 60061bf3133f0eec2f147f3d80f3e37c402ee12df8cde841b03d80c82a96bab7
updated: 2016-05-18T23:30:08.5219207+08:00
imports:
- name: github.com/mattn/go-adodb
version: 452cccbbcfb7906b3cbc512992557c1083e1011b
devImports: [] glide.yaml:
package: glide_demo6
import:
- package: github.com/mattn/go-adodb

  

3.2 下载单个包, --all-dependencies

command:
glide get --all-dependencies -s -v github.com/mattn/go-adodb glide.lock:
hash: 60061bf3133f0eec2f147f3d80f3e37c402ee12df8cde841b03d80c82a96bab7
updated: 2016-05-18T23:34:48.7545322+08:00
imports:
- name: github.com/go-ole/go-ole
version: 572eabb84c424e76a0d39d31510dd7dfd62f70b2
subpackages:
- oleutil
- name: github.com/gonuts/commander
version: f8ba4e959ca914268227c3ebbd7f6bf0bb35541a
- name: github.com/gonuts/flag
version: 741a6cbd37a30dedc93f817e7de6aaf0ca38a493
- name: github.com/mattn/go-adodb
version: 452cccbbcfb7906b3cbc512992557c1083e1011b
devImports: [] glide.yaml:
package: glide_demo6
import:
- package: github.com/mattn/go-adodb

从lock中可以看到,确实将所有的依赖包都下载了。

3.3 下载制定版本号的包

command:
glide get github.com/go-sql-driver/mysql#v1.2 glide.yaml:
package: glide_demo
import:
- package: github.com/go-sql-driver/mysql
version: v1.2

  

3.4 团队开发

在团队开始时,需要将 glide.yaml 和 glide.lock 进行版本控制,vendor 忽略掉。

模拟下团队开发的流程

A同学:初始化项目,并提交了源码,其中glide.yaml 和 glide.lock的内容如下

glide.yaml:
package: glide_demo6
import:
- package: github.com/mattn/go-adodb
- package: github.com/go-ole/go-ole
glide.lock:
hash: 18e3b9c2f5c11f3268b22ebdbea09636c5cae28e78f0011578f455c485e9d214
updated: 2016-05-18T23:43:15.8217224+08:00
imports:
- name: github.com/go-ole/go-ole
version: 572eabb84c424e76a0d39d31510dd7dfd62f70b2
- name: github.com/mattn/go-adodb
version: 452cccbbcfb7906b3cbc512992557c1083e1011b
devImports: []

B同学:拉去项目,执行 glide install,会自动下载对应的包

四、总结

使用glide的好处是,每个项目都采用各自独立的包,而且可以很好的控制包的版本,这在团队开发中尤其重要。

[golang] Glide 包管理的更多相关文章

  1. [golang] Glide 包管理工具,在windows10 64位系统上的bug修复方案

    bug重现 [ERROR] Unable to export dependencies to vendor directory: Error moving files: exit status 1. ...

  2. Golang学习--包管理工具glide

    上一篇文章中我们已经成功的运行了go的代码,这是我们迈出的最基础的一步. 一个项目通常会依赖很多外部的库,当依赖的库比较多的时候,手工管理就会比较麻烦,这个时候就需要包管理工具出场了,帮你管理好所有依 ...

  3. Golang Vendor 包管理工具 glide 使用教程

    Glide 是 Golang 的 Vendor 包管理器,方便你管理 vendor 和 verdor 包.类似 Java 的 Maven,PHP 的 Composer. Github:https:// ...

  4. golang的包管理---vendor/dep等

    首先关于vendor 1 提出问题 我们知道,一个工程稍大一点,通常会依赖各种各样的包.而Go使用统一的GOPATH管理依赖包,且每个包仅保留一个版本.而不同的依赖包由各自的版本工具独立管理,所以当所 ...

  5. glide包管理工具

    上一篇文章中我们已经成功的运行了go的代码,这是我们迈出的最基础的一步. 一个项目通常会依赖很多外部的库,当依赖的库比较多的时候,手工管理就会比较麻烦,这个时候就需要包管理工具出场了,帮你管理好所有依 ...

  6. 拜拜了,GOPATH君!新版本Golang的包管理入门教程

    Go 1.11和1.12实现了对包管理的初步支持,Go的新依赖管理系统使依赖版本信息明确且易于管理.Using Go Modules - The Go Blog 新的包管理模式有什么不同? 作为Go语 ...

  7. nexus 3.17.0 做为golang 的包管理工具

    nexus 3.17.0 新版本对于go 包管理的支持是基于go mod 的,同时我们也需要一个athens server 然后在nexus 中配置proxy 类型的repo 参考配置 来自官方的配置 ...

  8. golang 的glide包管理使用技巧教程

    安装glide ➜ wemall git:(master) ✗ go get github.com/Masterminds/glide ➜ wemall git:(master) ✗ go insta ...

  9. Glide Golang包管理

    Golang的包管理乱得不行,各种工具横空出世,各显神通啊.用了几个下来,发现 Glide 是比较好用的,使用了 vender 来进行管理,多个开发环境的版本不冲突,功能强大,配置文件也足够简单. 初 ...

随机推荐

  1. 三、jQuery--jQuery基础--jQuery基础课程--第7章 jQuery 动画特效

    1.调用show()和hide()方法显示和隐藏元素 show()和hide()方法用于显示或隐藏页面中的元素,它的调用格式分别为:$(selector).hide(speed,[callback]) ...

  2. Java面向对象三大特点之多态

    概念: 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作,如图所示: 多态性是对象多种表现形式的体现,同一个事件发生在不同的对象上会产生不同的结果. ...

  3. JavaScript中判断为整数的多种方式

    之前记录过JavaScript中判断为数字类型的多种方式,这篇看看如何判断为整数类型(Integer). JavaScript中不区分整数和浮点数,所有数字内部都采用64位浮点格式表示,和Java的d ...

  4. python基础——切片

    python基础——切片 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Michael', 'Sarah', 'Tracy', ...

  5. OC中两个关键字的作用:@property和@synthesize

    两个关键字的使用:@property和@synthesize 一.@property关键字这个关键字是OC中能够快速的定义一个属性的方式,而且他可以设置一些值,就可以达到一定的效果,比如引用计数的问题 ...

  6. .NET Core 2.0 Preview2 发布汇总

    前言 关于 ASP.NET Core 2.0 的新功能可以查看我的这篇博客. 这篇文章是 Priview2中的一些改进. .NET Core 2.0 - Preview2 Azure 的改进 Dock ...

  7. 微信支付JSAPI公众号支付授权目录

    详情 http://yangjunwei.com/a/1815.html

  8. C#创建IIS站点及相应的应用程序池,支持IIS6.0+Windows Server 2003. 使用Builder设计模式

    测试项目结构: PS:IIS6UtilsBuilder, IIS7UtilsBuilder,IISUtilsBuilder以及IISDirector为Builder设计模式实现的核心代码.Progra ...

  9. python正则表达式写[强口令检测]

    关于正则表达式,如果想跟深入学习,建议您看一下<python 核心编程>(第三版)这本书,第一章的内容就是正则表达式. 关于我的学习,我在看<python编程快速上手>这本书第 ...

  10. SpringSecurity3Demo【原】

    oschina git地址: https://gitee.com/KingBoBo/SpringSecurity3Demo.git