从Glide迁移到dep的方法

84 阅读2分钟

Glide已经存在了好几年了。来自Java的我使用Glide让我感到宾至如归。在Glide中,你有一个定义文件,描述你的生产源代码或测试源代码的版本依赖关系。这个文件被称为glide.yaml 。在清单1中,你可以看到这样一个文件的例子。

package: .
import:
- package: github.com/mvdan/xurls
  version: 1.1.0
testImport:
- package: github.com/stretchr/testify
  version: 1.1.4

清单1.Glide包的定义

锁定你的依赖版本和它们的交叉依赖是一个好主意,以确保构建的可重复性。Glide通过生成一个锁文件来处理这方面的问题。名为glide.lock 的锁文件将每个软件包与特定的依赖关系的提交哈希值挂钩。清单2显示了前面例子中声明的软件包的锁定版本。

hash: 806deb3bb1bb02051f152c49856cac37224f623247742a1b8c028b38dff21aef
updated: 2018-01-08T20:54:38.326434-07:00
imports:
- name: github.com/mvdan/xurls
  version: d315b61cf6727664f310fa87b3197e9faf2a8513
testImports:
- name: github.com/davecgh/go-spew
  version: 6d212800a42e8ab5c146b8ace3490ee17e5225f9
  subpackages:
  - spew
- name: github.com/pmezard/go-difflib
  version: d8ed2627bdf02c080bf22230dbb337003b7aba2d
  subpackages:
  - difflib
- name: github.com/stretchr/testify
  version: 69483b4bd14f5845b5a1e55bca19e954e827f1d0
  subpackages:
  - assert

清单2.Glide中锁定的包的版本

命令glide install 读取锁定文件,并将每一个带有表示的提交 ID 的软件包安装到供应商目录中。有了锁定文件,源代码可以在任何时候被构建,而不会有软件包悄悄改变下面的API并破坏构建的风险。

Glide停止了它的开发工作,转而使用dep.强烈建议迁移依赖定义。让我们看看如何用dep的内置工具来实现这个目标。