博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[golang] Glide 包管理
阅读量:7024 次
发布时间:2019-06-28

本文共 2431 字,大约阅读时间需要 8 分钟。

一、概述

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-adodbglide.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-adodbglide.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.2glide.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的好处是,每个项目都采用各自独立的包,而且可以很好的控制包的版本,这在团队开发中尤其重要。

转载于:https://www.cnblogs.com/sandea/p/9696719.html

你可能感兴趣的文章
javascript删除字符串最后一个字符
查看>>
[LeetCode] Lonely Pixel II 孤独的像素之二
查看>>
娓娓道来c指针 (2)内存分配
查看>>
怎样把多个Android Project打包成一个APK
查看>>
CSS
查看>>
唱吧DevOps的落地,微服务CI/CD的范本技术解读
查看>>
UVA1422-Processor(二分法+优先队列)
查看>>
php登录验证及代码实现 含数据库设计 亲測有效
查看>>
Ubuntu 16.04通过APT源安装QUEM虚拟机调试Linux内核
查看>>
[LeetCode]Delete Node in a Linked List
查看>>
Heap & Priority Queue
查看>>
ActiveMQ JMS 项目 基于 Maven 搭建 部署
查看>>
RDA PQ工具使用 (Adi Analysis)
查看>>
iOS中的崩溃类型
查看>>
ACdreamoj 1011(树状数组维护字符串hash前缀和)
查看>>
RPC与REST的差别
查看>>
亚马逊云EC2做PPTP SERVER的笔记
查看>>
MySQL SELECT 语句
查看>>
MFC文档(SDI)应用:画图程序(画圆、画线、鼠标事件)
查看>>
LEETCODE
查看>>