Golang 官方并沒有推薦最佳的包管理方案。到了1.5版本時代,官方引入包管理的設(shè)計,加了 vendor 目錄來支持本地包管理依賴。
官方 wiki 推薦了多種支持這種特性的包管理工具,如:Godep、gv、gvt、glide、govendor等。
即使使用vendor,也必須在GOPATH中。 (推薦學(xué)習(xí):go)
查找依賴包路徑的順序
當(dāng)前包下的vendor目錄。
向上級目錄查找,直到找到src下的vendor目錄。
在GOPATH下面查找依賴包。
在GOROOT目錄下查找
包管理工具govendor
需要把 $GOPATH/bin/ 加到 PATH 中。
安裝
go get -u github.com/kardianos/govendor
命令
init 創(chuàng)建 vendor 文件夾和 vendor.json 文件 list 列出已經(jīng)存在的依賴包 add 從 $GOPATH 中添加依賴包,會加到 vendor.json update 從 $GOPATH 升級依賴包 remove 從 vendor 文件夾刪除依賴 status 列出本地丟失的、過期的和修改的package fetch 從遠(yuǎn)端庫增加新的,或者更新 vendor 文件中的依賴包 sync Pull packages into vendor folder from remote repository with revisions migrate Move packages from a legacy tool to the vendor folder with metadata. get 類似 go get,但是會把依賴包拷貝到 vendor 目錄 license List discovered licenses for the given status or import paths. shell Run a "shell" to make multiple sub-commands more efficient for large projects. go tool commands that are wrapped: `+<status>` package selection may be used with them fmt, build, install, clean, test, vet, generate, tool