golang工程的依賴包常用go get命令來獲取,例如:go get github.com/kardianos/govendor ,會將依賴包下載到GOPATH
的路徑下。git
經常使用的依賴包管理工具備godep
,govendor
等,在Golang1.5以後,Go提供了 GO15VENDOREXPERIMENT
環境變量(Go 1.6版本默認開啓該環境變量),用於將go build時的應用路徑搜索調整成爲 當前項目目錄/vendor
目錄方式。經過這種形式,咱們能夠實現相似於 godep
方式的項目依賴管理。github
go get -u -v github.com/kardianos/govendor
#進入到項目目錄 cd /home/gopath/src/mytool #初始化vendor目錄 govendor init #查看vendor目錄 [root@CC54425A mytool]# ls commands main.go vendor mytool_test.sh #將GOPATH中本工程使用到的依賴包自動移動到vendor目錄中 #說明:若是本地GOPATH沒有依賴包,先go get相應的依賴包 govendor add +external 或使用縮寫: govendor add +e #Go 1.6以上版本默認開啓 GO15VENDOREXPERIMENT 環境變量,可忽略該步驟。 #經過設置環境變量 GO15VENDOREXPERIMENT=1 使用vendor文件夾構建文件。 #能夠選擇 export GO15VENDOREXPERIMENT=1 或 GO15VENDOREXPERIMENT=1 go build 執行編譯 export GO15VENDOREXPERIMENT=1
govendor
只是用來管理項目的依賴包,若是GOPATH
中自己沒有項目的依賴包,則須要經過go get
先下載到GOPATH中,再經過govendor add +external
拷貝到vendor
目錄中。Go 1.6以上版本默認開啓GO15VENDOREXPERIMENT環境變量。golang
常見的命令以下,格式爲 govendor COMMAND
。json
命令 | 功能 |
---|---|
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 目錄 |
具體來看,這些包可能的類型以下:工具