go依賴包管理工具vendor基礎
vendor是go的依賴包管理工具,主要用於管理項目中使用到的一些依賴。
它將項目依賴的包,特指外部包,復制到當前工程下的vendor目錄下,這樣go build的時候,go會優先從vendor目錄尋找依賴包。
將依賴的外部包引進工程下的vendor目錄,可以直接在其他機器直接編譯,而不用再去構建外部包的編譯環境,一個一個的go get獲取外部包。當然你也可以直接拷貝整個GOPATH下的第三方包源碼過來,也是起到了vendor相同的作用。
另外,防止了go get 重新拉取的外部包的版本可能和期望的不一致,從而導致編譯錯誤問題。
1. 安裝
go get -u -v github.com/kardianos/govendor
2. 使用
使用vendor需要初始化,必須先進入項目目錄中,進行vendor目錄的初始化。
govendor init //執行命令初始化完成,此時項目目錄中便出現了vendor目錄,
3. 將當前go項目所依賴的包添加進vendor目錄進行管理
govendor add +external
或者 govendor add +e //表示將當前項目所依賴的外部包添加進vendor目錄進行關聯。此時vendor目錄中包含了整個項目所依賴的包。
4. govendor的部分命令
命令 | 功能 |
---|---|
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 目錄 |
具體來看,這些包可能的類型如下:
5. 查看govendor命令幫助
govendor --help //govendor的命令幫助,里面可以找到自己需要的命令然后進行操作