1. 程式人生 > >golang開發:(四)包管理器 glide的使用

golang開發:(四)包管理器 glide的使用

glide 是golang專案開發中是特別重要的軟體,沒有它,golang的專案可能都無法釋出。

為什麼要使用glide

平時我們開發Go專案的時候,使用第三方的包的時候都直接使用go get 去獲取第三方的包,但是go get獲取到的包是專案的develop分支,我們開發的時候倒是可以不怎麼關注。但是如果到了生產環境,直接使用go get 是有很大風險的,因為,眾所周知,develop是開發分支,維護者會把新的程式碼push到開發分支,如果我們使用go get的話,可能我們每次釋出版本獲取到的第三方程式碼都是不一致,這樣專案就會有特別大的風險。我們肯定希望go get 第三方包到我們專案中的時候,可以設定一個穩定的版本來使用。但是go get卻無法滿足這個最普遍的要求。然後,glide就橫空出世了。

怎麼使用glide

安裝glide

mac系統或者Linux系統安裝
curl https://glide.sh/get | sh

Mac也可brew安裝
brew install glide

Ubuntu也可以apt-get安裝
sudo add-apt-repository ppa:masterminds/glide && sudo apt-get update
sudo apt-get install glide

完整之後測試下是否安裝成功
glide -h

NAME:
   glide - Vendor Package Management for your Go projects.

   Each project should have a 'glide.yaml' file in the project directory. Files
   look something like this:

       package: github.com/Masterminds/glide
       imports:
       - package: github.com/Masterminds/cookoo
         version: 1.1.0
       - package: github.com/kylelemons/go-gypsy
         subpackages:
         - yaml

   For more details on the 'glide.yaml' files see the documentation at
   https://glide.sh/docs/glide.yaml


USAGE:
   glide [global options] command [command options] [arguments...]

VERSION:
   v0.13.2

COMMANDS:
     create, init       Initialize a new project, creating a glide.yaml file
     config-wizard, cw  Wizard that makes optional suggestions to improve config in a glide.yaml file.
     get                Install one or more packages into `vendor/` and add dependency to glide.yaml.

出現上面的提示資訊介面就表示安裝成功了。
介紹幾個平時開發用的比較多的幾個命令,掌握了這幾個命令專案開發就基本沒啥問題了。

glide init --初始化專案,生成glide.yaml
glide install --安裝第三方包
glide up --更新第三方包

舉個栗子

做個UUID使用案例
首先 go get github.com/satori/go.uuid

package main

import (
    "fmt"
    uuid2 "github.com/satori/go.uuid"
)

func main() {
    uuid,_ := uuid2.NewV4()

    fmt.Println(uuid)
}

執行下

10c2b95f-b7c2-45f3-b5a3-a69020b9a7f7
Process finished with exit code 0

然後進入到專案目錄

glide init
會生成一個包含UUID包的yaml 檔案
package: test
import:
- package: github.com/satori/go.uuid

我們給這個包加下版本號

package: test
import:
- package: github.com/satori/go.uuid
- version: 1.2.0
然後執行 
glide install
顯示裡面有設定版本號的資訊
[INFO]  --> Fetching updates for github.com/satori/go.uuid
[INFO]  --> Setting version for github.com/satori/go.uuid to v1.2.0.
我們看到在專案包裡面生成一個 vendor的資料夾,vendor裡面有個uuid 的包
vendor/github.com/satori/go.uuid,以後通過glide管理的包檔案就在vendor裡面。
如果我們想把 version: 1.2.0 該為 version: 1.1.0.修改yaml檔案的版本號,然後執行
glide up
[INFO]  --> Fetching updates for github.com/satori/go.uuid
[INFO]  --> Setting version for github.com/satori/go.uuid to v1.1.0.
vendor裡面的版本就切換到了v1.1.0

glide 特別好用,特別實用吧