glide 是golang项目开发中是特别重要的软件,没有它,golang的项目可能都无法发布。

为什么要使用glide

平时我们开发Go项目的时候,使用第三方的包的时候都直接使用go get 去获取第三方的包,但是go get获取到的包是项目的develop分支,我们开发的时候倒是可以不怎么关注。但是如果到了生产环境,直接使用go get 是有很大风险的,因为,众所周知,develop是开发分支,维护者会把新的代码push到开发分支,如果我们使用go get的话,可能我们每次发布版本获取到的第三方代码都是不一致的,这样项目就会有特别大的风险。我们肯定希望go get 第三方包到我们项目中的时候,可以设置一个稳定的版本来使用。但是go get却无法满足这个最普遍的要求。然后,glide就横空出世了。

怎么使用glide

安装glide

mac系统或者Linux系统安装
curl https://glide.sh/get | sh Mac也可brew安装
brew install glide Ubuntu也可以apt-get安装
sudo add-apt-repository ppa:masterminds/glide && sudo apt-get update
sudo apt-get install glide

完整之后测试下是否安装成功

glide -h

NAME:
glide - Vendor Package Management for your Go projects. Each project should have a 'glide.yaml' file in the project directory. Files
look something like this: package: github.com/Masterminds/glide
imports:
- package: github.com/Masterminds/cookoo
version: 1.1.0
- package: github.com/kylelemons/go-gypsy
subpackages:
- yaml For more details on the 'glide.yaml' files see the documentation at
https://glide.sh/docs/glide.yaml USAGE:
glide [global options] command [command options] [arguments...] VERSION:
v0.13.2 COMMANDS:
create, init Initialize a new project, creating a glide.yaml file
config-wizard, cw Wizard that makes optional suggestions to improve config in a glide.yaml file.
get Install one or more packages into `vendor/` and add dependency to glide.yaml.

出现上面的提示信息界面就表示安装成功了。

介绍几个平时开发用的比较多的几个命令,掌握了这几个命令项目开发就基本没啥问题了。

glide init --初始化项目,生成glide.yaml
glide install --安装第三方包
glide up --更新第三方包

举个栗子

做个UUID使用案例

首先 go get github.com/satori/go.uuid

package main

import (
"fmt"
uuid2 "github.com/satori/go.uuid"
) func main() {
uuid,_ := uuid2.NewV4() fmt.Println(uuid)
}

运行下

10c2b95f-b7c2-45f3-b5a3-a69020b9a7f7
Process finished with exit code 0

然后进入到项目目录

glide init
会生成一个包含UUID包的yaml 文件
package: test
import:
- package: github.com/satori/go.uuid

我们给这个包加下版本号

package: test
import:
- package: github.com/satori/go.uuid
- version: 1.2.0
然后执行
glide install
显示里面有设置版本号的信息
[INFO] --> Fetching updates for github.com/satori/go.uuid
[INFO] --> Setting version for github.com/satori/go.uuid to v1.2.0.
我们看到在项目包里面生成一个 vendor的文件夹,vendor里面有个uuid 的包
vendor/github.com/satori/go.uuid,以后通过glide管理的包文件就在vendor里面。
如果我们想把 version: 1.2.0 该为 version: 1.1.0.修改yaml文件的版本号,然后执行
glide up
[INFO] --> Fetching updates for github.com/satori/go.uuid
[INFO] --> Setting version for github.com/satori/go.uuid to v1.1.0.
vendor里面的版本就切换到了v1.1.0

glide 特别好用,特别实用吧。

详细的使用可以看官方的文档

https://github.com/Masterminds/glide

最新文章

  1. Fragment基础----信息传递
  2. Hadoop集群搭建
  3. 新安装的VS的一些设置
  4. js去除日期字符串时分秒
  5. MyBatis学习笔记(3)—— 利用mybatis灌入假数据
  6. Chapter 8. Introduction to multi-project builds 多工程构建介绍
  7. 线程篇-01-NSThread
  8. EasyMonkeyDevice vs MonkeyDevice&HierarchyViewer API Mapping Matrix
  9. 《think in python》学习-1
  10. 服务端套接字类CxServerSocket的使用
  11. vs2015添加ActiveX Control Test Container工具(转载)
  12. tensorflow笔记(三)之 tensorboard的使用
  13. 【Uva 11604 编码都有歧义了】
  14. Docker入门教程
  15. 【Android端】【日志收集上报SDK相关内容测试的方案梳理总结】
  16. Linux 用top命令查看CPU和内存使用情况
  17. PAT A1122 Hamiltonian Cycle (25 分)——图遍历
  18. 【BZOJ2589】 Spoj 10707 Count on a tree II
  19. Java之所有对象的公用方法>8.Obey the general contract when overriding equals
  20. Git做代码增量发布的重要用法 - --diff-filter

热门文章

  1. 小福bbs-冲刺日志(第七天)
  2. Qt *.pro工程文件 详解
  3. 单点登录 sso -- cas CAS 原理 流程 分析
  4. NTC3950-10K温度传感器
  5. HttpWebRequest使用时发生阻塞的解决办法
  6. 【Java.Regex】用正则表达式查找Java文件里的字符串
  7. openresty开发系列15--lua基础语法4表table和运算符
  8. Eclipse | 如何修改web项目的访问链接名,项目名
  9. SQL查询优化 LEFT JOIN和INNER JOIN
  10. django项目mysite