Golang學(xué)習(xí)筆記之包管理工具(govendor)

govendor是Golang的依賴包管理工具,它的出現(xiàn)可以避免不同用戶在clone同一個項目后從外部獲取不同依賴庫版本的問題。govendor會將項目需要的依賴包添加到項目的vendor目錄下,并且該目錄中vendor.json文件會保存添加的依賴包的路徑等信息。

Golang項目中的go文件在查找依賴的順序是,先在vendor中查找,vendor沒找到然后在GOPATH中查找,都沒找到最后在GOROOT中查找。

GitHub地址:https://github.com/kardianos/govendor

一、安裝

go get -u github.com/kardianos/govendor

二、初始化

進入你的項目目錄下
govendor init
會出現(xiàn)一個vendor文件夾,里面的vendor.json 文件用來記錄依賴包的信息

三、常用API
(1)govendor add +external

將GOPATH中本工程使用到的依賴包自動移動到vendor目錄中,必須vendor目錄下沒有,且vendor.json中沒有記錄這個包的時候才會添加。其中一個存在則命令無效亦不報錯。
關(guān)于+后面的參數(shù),就不一一列舉了

(2)govendor —help

幫助

(3)govendor fetch [包鏈接](如: github.com/BurntSushi/toml)

從遠程拉取包到vendor下并記錄進vendor.json,gopath目錄下不會有
拉下來的包

(4)govendor sync

根據(jù)已有的vendor.json里面的依賴包信息。從遠程拉取包到vendor目錄下。

(5)govendor remove +local

移除包的時候會把vendor目錄和json文件的記錄一起移除,只有vendor
或者只有json中有仍然會移除而不提示
其他可以參照上面照片

(6)govendor remove [包鏈接](如: github.com/BurntSushi/toml)

移除指定包

(7)govendor remove +vendor

移除vendor下所有的包

govendor只是用來管理項目的依賴包,如果GOPATH中本身沒有項目的依賴包,則需要通過go get先下載到GOPATH中,再通過govendor add+external拷貝到vendor目錄中。Go 1.6以上版本默認開啟GO15VENDOREXPERIMENT環(huán)境變量。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 包管理的重要性不言而喻。隨著項目的推進,沒有合適的包管理,每一次迭代都將成為開發(fā)者的噩夢。尤其是對于進行持續(xù)集成的...
    suoga閱讀 4,496評論 4 10
  • 1. 分布式系統(tǒng)核心問題 參考書籍:《區(qū)塊鏈原理、設(shè)計與應(yīng)用》 一致性問題例子:兩個不同的電影院買同一種電影票,如...
    molscar閱讀 929評論 0 0
  • 我可是很了解真正的自己 相信我 不會有人愛那種人的 我需要去沖個澡 這樣我才不會看到自己哭出來
    3c79568913d8閱讀 208評論 1 0
  • 今早聽了群分享的《財商教育》,很受啟發(fā)。對于理財,自己也是一直在學(xué)習(xí)的路上,膽沒那么大,理財相對保守。再...
    雙寶媽YQ閱讀 232評論 0 2
  • 開篇我們附上最符合本吧主題的Windows 7微軟原版無修改的系統(tǒng)鏡像下載地址:****Windows 764位旗...
    這真的是一個帥氣的名字閱讀 7,160評論 2 23