有,總比沒有要好:Go依賴管理工具dep
回復(fù)“Go語言”即可獲贈從入門到進階共10本電子書
有,總比沒有要好:Go依賴管理工具dep
介紹

? ??“ 閱讀本文大概需要3.4分鐘 ”
? ? 早期的Golang被很多開發(fā)者所詬病的一個問題就是依賴包的管理。Golang 1.5 release版本的發(fā)布之前,只能通過設(shè)置多個GOPATH的方式來解決這個問題,例如:我兩個工程都依賴了Beego,但A工程依賴的是Beego1.1,B工程依賴的是Beego1.7,我必須設(shè)置兩個GOPATH來區(qū)分,并且在切換工程的時候GOPATH也得切換,無比痛苦。終于終于在Golang 1.5 release 開始支持除了GOROOT和GOPATH之外的依賴查詢,那就是vender,于是很多大佬開始造輪子,造得比較好的應(yīng)該是dep和glide。
主角出場
? ? 今天的主角是dep,Golang的官方依賴工具,用來管理和下載工程依賴的工具,以下是官方的介紹
dep is a prototype dependency management tool for Go. It requires Go 1.9 or newer to compile. dep is safe for production use.
安裝
MacOS ?
brew install depLinux
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | shWindows ?
go get -u github.com/golang/dep/cmd/depWindows得自己編譯,并且確認把
$GOPATH/bin添加到環(huán)境變量$PATH下
驗證
? ? 在命令行輸入dep并回車,會出現(xiàn)以下提示的話,說明已經(jīng)安裝成功了。

功能介紹
1.dep init
? ? 備份當前的vender,創(chuàng)建vender目錄并下載項目中的所有依賴包,生成Gopkg.lock和Gopkg.toml以下是兩個文件的作用說明,簡單講Gopkg.toml是清單文件,Gopkg.lock是校驗描述文件。盡量不要修改,避免造成兩個文件不同步的錯誤。
A manifest - a file describing the current project’s dependency requirements. In dep, this is the Gopkg.toml file.
A lock - a file containing a transitively-complete, reproducible description of the dependency graph. In dep, this is the Gopkg.lock file.

2.dep status
? ? 用來查看項目依賴的詳細信息和狀態(tài),非常清晰。?

3.dep ensure
? ? 嘗試確保所有的依賴庫都已經(jīng)安裝,如果沒有即下載,相當于對依賴庫做增量更新。
4.dep ensure add ? github.com/RoaringBitmap/roaring@^1.0.1
? ? 下載添加新的依賴庫,并增量更新清單文件和校驗描述文件。github.com/RoaringBitmap/roaring 是依賴庫的包名,1.0.1是庫的版本號。
本地緩存
? ? 當然dep不會每次都去下載,其工作原理和Mevan一樣,會優(yōu)先在本地倉庫搜索,本地倉庫未找到即在網(wǎng)絡(luò)上下載,并添加到本地倉庫。
$GOPATH/pkg/dep/sources
-------------------?End?-------------------
往期精彩文章推薦:

歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Go學習群請在后臺回復(fù)【入群】
萬水千山總是情,點個【在看】行不行
