美文网首页golang_rookie
采用Glide对Golang进行包管理

采用Glide对Golang进行包管理

作者: 技术学习 | 来源:发表于2016-08-09 15:23 被阅读4837次

概述

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

安装及命令介绍

➜ tonny@tonny-pc  ~ 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。

下载单个包

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

下载单个包, --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中可以看到,确实将所有的依赖包都下载了。

下载制定版本号的包

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

团队开发

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

相关文章

  • 采用Glide对Golang进行包管理

    概述 Golang的包管理工具有很多,本篇幅主要介绍Glide进行包管理。 安装及命令介绍 命令介绍glide c...

  • Glide 包管理

    一、概述 golang的包管理工具有很多,本篇幅主要介绍glide进行包管理。 二、安装及命令介绍 go get ...

  • 使用glide管理golang依赖包

    glide可以每个项目单独管理包, 在项目根目录vendor文件夹下 安装glide 基本命令 使用 下载指定版本...

  • 使用glide mirror(持续更新中)

    使用glide mirror下载一些不能访问的golang库,需要在glide的mirrors.yaml中进行配置...

  • Glide与Picasso的区别

    Glide使用生命周期对图片进行管理,根据Glide的使用方法我们可以看出,传入的context建议传入Activ...

  • Glide源码解析

    问题 glide是如何进行缓存的? glide是如何多线程加载图片? glide如何进行内存管理? 为何要选择gl...

  • Golang glide 包管理镜像

    glide mirror set golang.org/x/sys github.com/golang/sys不生...

  • Golang使用Glide进行包管理之命令

    安装 初始化 在go项目的根目录下直接运行: 添加依赖 glide get,类似于go get,不过不同的是,gl...

  • golang 依赖、编译、部署实践

    最近有个 golang 项目要上线,做了这方面的整理。 版本 依赖管理工具有很多, glide、dep、gvend...

  • Golang包管理--GoVender

    (一)govender的功能 govender 是对Golang的包依赖管理的一个插件,该工具将项目依赖的外部包拷...

网友评论

    本文标题:采用Glide对Golang进行包管理

    本文链接:https://www.haomeiwen.com/subject/efrdsttx.html