vendor是go的依賴包管理工具,主要用於管理項目中使用到的一些依賴。git
它將項目依賴的包,特指外部包,複製到當前工程下的vendor目錄下,這樣go build的時候,go會優先從vendor目錄尋找依賴包。github
將依賴的外部包引進工程下的vendor目錄,能夠直接在其餘機器直接編譯,而不用再去構建外部包的編譯環境,一個一個的go get獲取外部包。固然你也能夠直接拷貝整個GOPATH下的第三方包源碼過來,也是起到了vendor相同的做用。json
另外,防止了go get 從新拉取的外部包的版本可能和指望的不一致,從而致使編譯錯誤問題。ide
1. 安裝工具
go get -u -v github.com/kardianos/govendor
2. 使用fetch
使用vendor須要初始化,必須先進入項目目錄中,進行vendor目錄的初始化。ui
govendor init //執行命令初始化完成,此時項目目錄中便出現了vendor目錄,
3. 將當前go項目所依賴的包添加進vendor目錄進行管理code
govendor add +external 或者 govendor add +e //表示將當前項目所依賴的外部包添加進vendor目錄進行關聯。此時vendor目錄中包含了整個項目所依賴的包。
4. govendor的部分命令blog
命令 | 功能 |
---|---|
init |
初始化 vendor 目錄 |
list |
列出全部的依賴包 |
add |
添加包到 vendor 目錄,如 govendor add +external 添加全部外部包 |
add PKG_PATH |
添加指定的依賴包到 vendor 目錄 |
update |
從 $GOPATH 更新依賴包到 vendor 目錄 |
remove |
從 vendor 管理中刪除依賴 |
status |
列出全部缺失、過時和修改過的包 |
fetch |
添加或更新包到本地 vendor 目錄 |
sync |
本地存在 vendor.json 時候拉去依賴包,匹配所記錄的版本 |
get |
相似 go get 目錄,拉取依賴包到 vendor 目錄 |
具體來看,這些包可能的類型以下:rem
5. 查看govendor命令幫助
govendor --help //govendor的命令幫助,裏面能夠找到本身須要的命令而後進行操做