欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Go包管理Glide使用心得

程序员文章站 2022-07-06 12:32:44
Glide是Go语言的一种包管理工具,官网:, Github地址: 。当然从Go 1.13开始,模块模式变成所有开发的默认模式。关于Go module,可阅读Go官方博客: "Using Go Modules" 以下是Glide的一些使用心得: 一般使用glide install,这样会读取配置文件 ......

glide是go语言的一种包管理工具,官网:, github地址: https://github.com/masterminds/glide。当然从go 1.13开始,模块模式变成所有开发的默认模式。关于go module,可阅读go官方博客:using go modules

以下是glide的一些使用心得:

一般使用glide install,这样会读取配置文件glide.lock,保证每次构建时用的依赖包都是相同的,不会随便升级。

执行glide up会自动更新glide.lock,在生产环境,这样会有一定风险,例如最新版本与开发用的版本不兼容,导致构建或运行出错,因此一般使用glide install。

最强大的命令是glide up,因为up命令除了解析glide.yaml,也会走读代码中的依赖树,下载到vendor目录。

glide.yaml示例,注意文件中的version可以是分支名、tag名等。

package: github.com/foo/bar
import:
- package: git.apache.org/thrift.git
  version: =0.9.2
  subpackages:
  - lib/go/thrift
- package: github.com/bouk/monkey
  version: ^1.0.1

glide.lock示例

hash: ed07eda8c92ac4df03a9b1fca70d6dac1d94430d1ebfa5011ca8c37eaec1173f
updated: 2020-02-25t15:56:03.200606621+08:00
imports:
- name: git.apache.org/thrift.git
  version: 591e20f9636c37527a70dc03598218c3468a0eff
  subpackages:
  - lib/go/thrift
- name: github.com/bouk/monkey
  version: bdf6dea004c6fd1cdf4b25da8ad45a606c09409a

注意glide.lock文件中的version是git commit hash,以github.com/bouk/monkey为例,version: bdf6dea004c6fd1cdf4b25da8ad45a606c09409a表示如下的提交内容:

$ git show bdf6dea004c6fd1cdf4b25da8ad45a606c09409a -n 1

commit bdf6dea004c6fd1cdf4b25da8ad45a606c09409a (tag: v1.0.1)
merge: 5df1f20 58750f3
author: bouke van der bijl <boukevanderbijl@gmail.com>
date:   tue aug 21 14:10:00 2018 +0200

    merge pull request #20 from bouk/canonical

    add canonical import path