技術部落格:
安裝:
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
下。
這時候可以結合list
和add
來使用, 先用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...