go vendor包管理

有些時候,go 語言會import一些github包,有時候又不得不修改某些導入包的源碼也滿足需求或者想將依賴的包放在自己的項目中,防止代碼go get不下來,編譯出問題。此時就不得不用到 go vendor這個包管理工具

前提條件: 設置了 gopath 環境變量
1. 安裝 go vendor

go get -u github.com/kardianos/govendor
export PATH=$PATH:$GOPATH/bin

2. 拷貝整個項目到 gopath/src 下
3. init 初始化,生成vendor目錄,並list 出項目中用到的 依賴,並使用 go get 下載下來, go get的時候不要在gopath目錄下執行不然會報錯

#govendor init
#govendor list
    v  gopkg.in/jcmturner/gokrb5.v5/asn1tools                          
    v  gopkg.in/jcmturner/gokrb5.v5/client                             
    v  gopkg.in/jcmturner/gokrb5.v5/config                             
    v  gopkg.in/jcmturner/gokrb5.v5/credentials 

#go get gopkg.in/jcmturner/gokrb5.v5

4. 從本地將依賴加進去,此時在vendor目錄下會有對應的 gopkg.in/jcmturner/gokrb5.v5

govendor add +e

5. 如果你有自定義的資源,打成包跨包使用,也可以通過vendor來管理
如果有使用 go-bindata,資源生成.go文件,例如放在目錄 res,建立軟連接到vendor下,即可在其他包 import "res",使用

ln -s /path/to/res /path/to/vendor

使用vendor管理包,代碼導包的地方不用更改,編譯的時候,會先在當前目錄的vendor裏找,找不到在去gopath/src下找
參考文獻
https://www.jianshu.com/p/88669ba57d04
https://www.cnblogs.com/liuzhongchao/p/9233177.html
https://shockerli.net/post/go-package-manage-tool-govendor/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章