• [golang] Glide 包管理


    一、概述

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

  • 相关阅读:
    解决Django和EasyUI搭配使用时出现的CSRF问题
    修改Django的默认打印时间
    解决多网卡SNMP获取不到数据的问题
    Django模板格式
    java操作excel
    数字1的个数
    leetcode:2. 两数相加(java)
    二叉树常用操作
    通配符匹配
    二叉树基本操作
  • 原文地址:https://www.cnblogs.com/sandea/p/9696719.html
Copyright © 2020-2023  润新知