Golang包管理工具之govendor的使用


1. govendor簡介

golang工程的依賴包經常使用go get命令來獲取,例如:go get github.com/kardianos/govendor ,會將依賴包下載到GOPATH的路徑下。

常用的依賴包管理工具有godepgovendor等,在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 目錄

具體來看,這些包可能的類型如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM