go mod依賴管理

好文

鏈接
鏈接

GO111MODULE

mod模式是否開啓由環境變量GO111MODULE決定,GO111MODULE 環境變量有三個值:on,auto(默認值),off

on:強制開啓mod模式,此模式下不會去 GOPATH/srcproject/vendor 下加載第三方依賴包,只會去GOPATH/pkg/mod下載加載。
auto:如果項目在 GOPATH/src下,則轉爲普通模式,否則,轉爲mod模式。

off:關閉mod模式,轉爲普通的GOPATH/src,project/vendor模式。

mod模式下安裝的依賴包都存放在GOPATH/pkg/mod目錄下,在 mod 模式下導入第三方包時會去GOPATH/pkg/mod目錄下加載,而不是普通模式下的GOPATH/src | project/vendor目錄。

半自動維護依賴,你甚至可以不需要使用get預先安裝依賴,module在run test build時會檢測未下載的依賴,並自動下載它們。

go mod支持語義化版本號,比如
go get [email protected]

init

初始化項目爲module模式:go mod init moduleName

tidy

雖然是自動依賴(自動下載)。但建議,當我們下載了別人的mod項目到本地時,可以直接run,mod會自動下載未安裝的依賴,也可以執行一次tidy手動維護一次依賴,當我們要上傳自己本地的項目到倉庫時,應該先執行以下tidy命令,清理一下無用的依賴,再上傳。

vendor

將module項目轉爲普通的vendor項目,這時就需要將項目移至GOPATH/src下,並要保證projectName同moduleName保持一致,否則要手動去修改項目模塊包的加載路徑了。

其他命令

download    download modules to local cache (下載依賴的module到本地cache))
edit        edit go.mod from tools or scripts (編輯go.mod文件)
graph       print module requirement graph (打印模塊依賴圖))
init        initialize new module in current directory (在當前文件夾下初始化一個新的module, 創建go.mod文件))
tidy        add missing and remove unused modules (增加丟失的module,去掉未使用的module)
vendor      make vendored copy of dependencies (將依賴複製到vendor下)
verify      verify dependencies have expected content (校驗依賴)
why         explain why packages or modules are needed (解釋爲什麼需要依賴)

go.mod 文件必須要提交到 git 倉庫,但 go.sum 文件可以不用提交到 git 倉庫(gi t忽略文件 .gitignore 中設置一下)。

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