1. govendor簡介
golang工程的依賴包經常使用go get命令來獲取,例如:go get github.com/kardianos/govendor ,會將依賴包下載到GOPATH
的路徑下。
常用的依賴包管理工具有godep
,govendor
等,在Golang1.5之后,Go提供了 GO15VENDOREXPERIMENT
環境變量(Go 1.6版本默認開啟該環境變量),用於將go build時的應用路徑搜索調整成為 當前項目目錄/vendor
目錄方式。通過這種形式,我們可以實現類似於 godep
方式的項目依賴管理。
2. 安裝與使用
2.1. 安裝
go get -u -v github.com/kardianos/govendor
2.2. 使用
#進入到項目目錄 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
2.3. 說明
govendor
只是用來管理項目的依賴包,如果GOPATH
中本身沒有項目的依賴包,則需要通過go get
先下載到GOPATH中,再通過govendor add +external
拷貝到vendor
目錄中。Go 1.6以上版本默認開啟GO15VENDOREXPERIMENT環境變量。
2.3. 常用命令
常見的命令如下,格式為 govendor COMMAND
。
命令 | 功能 |
---|---|
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 目錄 |
具體來看,這些包可能的類型如下: