Glide是Go語言的一種包管理工具,官網:, Github地址: 。當然從Go 1.13開始,模塊模式變成所有開發的預設模式。關於Go module,可閱讀Go官方博客: "Using Go Modules" 以下是Glide的一些使用心得: 一般使用glide install,這樣會讀取配置文件 ...
Glide是Go語言的一種包管理工具,官網:https://glide.sh/, 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 <[email protected]>
Date: Tue Aug 21 14:10:00 2018 +0200
Merge pull request #20 from bouk/canonical
Add canonical import path