golang包管理工具glide簡介

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

golang包管理工具glide簡介

前言

golang是一個十分有趣,簡潔而有力的開發語言,用來開發並發/並行程式是一件很愉快的事情。在這裡我感受到了其中一些好處:

  • 沒有少了許多代碼格式風格的爭論,強制統一的風格多好;
  • 編譯速度超快,再也不用等待許久,才能編譯完工程(測試驅動開發自然更爽);
  • 也不會出現同一個項目組中的人,在使用同一個語言的不同子集。但這種情況不論是在C#還是在Java的世界裡,都還是普遍存在的;
  • 輕鬆跨平台(當然Java做得不錯,C#/.net還是努力中...)
  • 這是一門非常簡潔、簡單、清晰的程式設計語言(關鍵字好少啊)
  • 包依賴處理得很有趣;
  • 錯誤處理機制很有趣,個人覺得比C#/Java的異常處理機制更方便,也更合理些;
  • 對物件導向編程很有趣,非侵入性的介面實現方式,太贊了。
  • 用組合而不是繼承
    有些東西沒有,比如模板,這個東西有一大片爭論,官方也有明確的回應。是啊,為什麼一定要模板呢?非要不可嗎?這麼關鍵嗎?如果非要不可,是不是go並不是這個環境下的最佳選擇呢。

還有一個問題的是包管理,並沒有官方最佳管理方案,在go的世界裡存在大量的自製解決方案。go語言的包是沒有中央庫統一管理的,通過使用go get命令從遠程程式碼程式庫(github.com,goolge code 等)拉取,直接跳過中央版本庫的約束,讓代碼的拉取直接基於原始碼版本控制庫,開發人員間的協同直接依賴於原始碼的版本控制。直接去除了庫版本的概念。沒有明顯的包版本標識,感覺還是有點不適應,官方的建議是把外部依賴的代碼全部複製到自己可控的原始碼庫中,進行同意管理。從而做到對依賴包的可控管理。

1.5版本的vendor目錄特性後,官方wiki推薦了多種支援這種特性的包管理工具如:Godep、gv、gvt、glide、Govendor等。我比較喜歡glide。此外,作為程式員FQ似乎是必備技能,翻得一手好牆,才能跟得上步伐,才有收合刀落的手感,怎一個爽字了得。別問我怎麼FQ,找度娘,她知道。

glide

glide是Go的包管理工具。支援語義化版本,支援Git、Svn等,支援Go工具鏈,支援vendor目錄,支援從Godep、GB、GPM、Gom倒入,支援私人的Repos和Forks。

使用glide管理的工程目錄結構如下:

- $GOPATH/src/myProject (Your project)  |  |-- glide.yaml  |  |-- glide.lock  |  |-- main.go (Your main go code can live here)  |  |-- mySubpackage (You can create your own subpackages, too)  |    |  |    |-- foo.go  |  |-- vendor       |-- github.com            |            |-- Masterminds                  |                  |-- ... etc.

安裝

$ curl https://glide.sh/get | sh

初始化

$ glide init

初始化,glide掃描碼目錄,建立一個glide.yaml檔案,檔案中記錄了所有的依賴

編輯配置

$ edit glide.yaml

通過修改glide.yaml檔案,可以添加版本資訊等,這一步不是必須的。

解析下載包依賴

$ glide update

或者

$ glide up

下載和更新glide.yaml中列出的所有依賴包,並將它們放到vendor目錄下。glide同時也遞迴擷取依賴包需要的任何依賴項包括設定檔中定義的依賴項目。glide遞迴擷取依賴,可以識別Glide、Godep、gb、gom和GPM管理的項目。

當依賴被制定到特定的版本時,名為glide.lock的檔案會被建立或者更新。例如,如果在glide.yaml中一個版本被指定在一個範圍內(如:^1.2.3),那麼glide將在glide.yaml中設定一個特定提交ID(commit id)。如此,將允許重複安裝(見 glide install命令)。

從擷取的依賴包中移除嵌套的vendor/目錄可以使用-v標記。

安裝特定版本

當需要從glide.lock檔案中安裝制定版本的包是,可以使用install命令:

glide install

該命令將會讀取glide.lock檔案,當glide.lock檔案和glide.yaml不同步時,如glide.yaml發生改變,glide將會提供一個警告。運行glide up命令更新依賴樹時,將會重建glide.lock檔案。

查看glide.yaml中依賴名稱

$ glide name

查看依賴列表

$ glide list

查看協助

$ glide help

參看glide版本資訊

$ glide --version
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.