Go 包管理工具 govendor 使用指南

2021-10-02 08:55:49 字數 2450 閱讀 5382

技術部落格:

安裝:

go get -u -v github.com/kardianos/govendor
初始化:

# setup your project.

cd "my project in gopath"

govendor init

# add existing gopath files to vendor.

govendor add +external

下面介紹三個命令:

govendor get:如官網所述 like 「go get」 but copies dependencies into a 「vendor」 folder,實際上只複製了依賴包進到 vendor 目錄而已。

govendor add:add packages from $gopath,意思是從本地載入依賴包。

govendor fetch github.com/gin-gonic/[email protected] # 只拷貝 gin/ 目錄的內容,而不包含其子目錄

govendor fetch github.com/gin-gonic/gin/[email protected] # 可以得到 gin/ 目錄,及其所有子目錄

@v1.2表示使用 v1.2 版本,其實就是 git tag 為 v1.2 的 revision,這個功能很實用。

再說乙個可能會碰到的問題,有時候我們使用第三方依賴包,而且還有 bug,修復之後,期望使用自己倉庫的時候,可以這樣做:

govendor get 'github.com/go-sql-driver/mysql::github.com/yongxinz/go-mysql'
原倉庫的github.com/go-sql-driver/mysql存在乙個小問題,此時期望使用自己修復過的github.com/yongxinz/go-mysql

不要將整個vendor/目錄的內容都提到 git 倉庫,只提交vendor/vendor.json檔案就可以了。

當我們拉**之後,需要安裝依賴包時,只需要執行下面這條命令就可以了。

govendor sync
.gitignore檔案,重點在最後兩行:

# created by 

### go ###

# binaries for programs and plugins

*.exe

*.exe~

*.dll

*.so

*.dylib

# test binary, build with `go test -c`

*.test

# output of the go coverage tool, specifically when used with liteide

*.out

### go patch ###

/vendor/

!/vendor/vendor.json

所以,一般的開發流程可以這樣來做:如果是新建專案,先安裝 govendor 並初始化,然後通過 govendor 來安裝依賴包;如果是已有專案,先從版本庫拉下來,然後安裝 govendor,再執行同步命令即可。

govendor status: 檢視當前包狀態

govendor list +e: 檢視當前專案的依賴但是未被新增到vendor中的包

govendor add +e: 新增依賴的包。如果vendor.json中存在,但是vendor目錄下不存在(即govendor status顯示缺失)的包也會被重新新增

govendor remove +u: 刪除在vendor下但是未依賴的包

在實際過程中,有部分包是團隊的公共包。 這部分包通常有自己的單獨專案,並且已經被我們新增到$gopath下,可能就不需要新增到當前專案的vendor下。

這時候可以結合listadd來使用, 先用list -no-status +e列出依賴包,然後使用grep過濾,再呼叫add命令新增:

govendor list -no-status +e | grep -v 'myteam/common' | xargs govendor add

相關文件:

Golang包管理工具之govendor的使用

本文個人部落格位址為 本文個人部落格位址為 更多golang包管理工具參考 golang包管理工具之glide的使用 常用的依賴包管理工具有godep,govendor等,在golang1.5之後,go提供了go15vendorexperiment環境變數 go 1.6版本預設開啟該環境變數 用於將...

Golang包管理工具之govendor的使用

常用的依賴包管理工具有godep,govendor等,在golang1.5之後,go提供了go15vendorexperiment環境變數 go 1.6版本預設開啟該環境變數 用於將go build時的應用路徑搜尋調整成為當前專案目錄 vendor目錄方式。通過這種形式,我們可以實現類似於godep...

Go依賴管理工具(三)govendor

安裝方法 go get u github.com kardianos govendor用法 govendor init 初始化 vendor 目錄,生成乙個初始化的vendor.json govendor add local 加本專案中用到的dependency加到vendor.json裡面 gov...