vendor概念最早是由keith提出,用來存放依賴包。在版本1.5出現。
從引用檔案所在的vendor
路徑下面搜尋,
如果沒有找到,那麼從上層目錄的vendor
路徑下面搜尋,
直到src
的vendor
路徑下面搜尋。
go 1.11版本支援臨時環境變數go111module,通過該環境變數來控制依賴包的管理方式。當go111module的值為on時,那麼就會使用modules功能,這種模式下,$gopath不再作為build時匯入的角色,依賴包會存放在$gopath/pkg/mod目錄下。工程中的依賴包也會從此目錄下查詢。有關該功能的介紹,可以看go1.1.1新功能module的介紹及使用。
o111module=off時,如果乙個包在vendor和$gopath下都存在,那麼使用順序為:
優先使用vendor目錄下面的包,
如果vendor下面沒有搜尋到,再搜尋$gopath/src下面的包,
如果$gopath下面沒有搜尋到,那麼搜尋$goroot/src下面的包,
要麼完整使用vendor下面的包,要麼完整使用$gopath下面的包,不會混合使用。
我們做乙個總結,如果存在vendor 的情況下,專案首先會從vendor 目錄下搜尋對應的包。如果 vendor 不存在則會搜尋$gopath/src 下的包。
依賴的包 vs code 安裝go依賴包失敗
提示類似下面的資訊,設定一下 即可。錯誤提示installing github.com uudashr gopkgs v2 cmd gopkgs failedinstalling github.com acroca go symbols failedinstalling github.com hay...
Go 包引用介紹
最近在學習go程式設計,本文簡單的敘述如何在go程式設計中使用包 包管理 和其他大多數語言一樣,go也存在包,並使用package關鍵字定義乙個包。首先介紹在程式中如何引入包,引入包有以下幾種方式 1.最簡單的方式引入乙個包的方式是直接引入包,例如 import fmt import os 2.也可...
Go 包引用介紹
最近在學習go程式設計,本文簡單的敘述如何在go程式設計中使用包 包管理 和其他大多數語言一樣,go也存在包,並使用package關鍵字定義乙個包。首先介紹在程式中如何引入包,引入包有以下幾種方式 1.最簡單的方式引入乙個包的方式是直接引入包,例如 import fmt import os 2.也可...