Golang必知必會(huì)之Go?Mod命令詳解
一、go mod 是什么?
go modules 官方定義為:
模塊是相關(guān)Go包的集合。modules是源代碼交換和版本控制的單元。
go命令直接支持使用modules,包括記錄和解析對其他模塊的依賴性。modules替換舊的基于GOPATH的方法來指定在給定構(gòu)建中使用哪些源文件。
二、詳細(xì)命令
1. init
代碼:
go mod init
生成 go.mod 文件,此命令會(huì)在當(dāng)前目錄中初始化和創(chuàng)建一個(gè)新的go.mod文件,手動(dòng)創(chuàng)建go.mod文件再包含一些module聲明也等同該命令,而go mod init命令便是幫我們簡便操作,可以幫助我們自動(dòng)創(chuàng)建。
2.download
代碼:
go mod download
下載 go.mod 文件中指明的所有依賴,使用此命令來下載指定的模塊,模塊的格式可以根據(jù)主模塊依賴的形式或者path@version形式指定。
3.tidy
代碼:
go mod tidy
整理現(xiàn)有的依賴,使用此命令來下載指定的模塊,并刪除已經(jīng)不用的模塊
4.graph
代碼:
go mod graph
查看現(xiàn)有的依賴結(jié)構(gòu),生成項(xiàng)目所有依賴的報(bào)告,但可讀性太差,圖形化更方便。
5.edit
代碼:
go mod edit
編輯 go.mod 文件,之后通過 download 或 edit 進(jìn)行下載
5.vendor
代碼:
go mod vendor
導(dǎo)出項(xiàng)目所有的依賴到vendor目錄,從mod中拷貝到項(xiàng)目的vendor目錄下,IDE可以識(shí)別這樣的目錄。
5.verify
代碼:
go mod verify
校驗(yàn)一個(gè)模塊是否被篡改過,查詢某個(gè)常見的模塊出錯(cuò)是否已被篡改
5.why
代碼:
go mod why
查看為什么需要依賴某模塊,查詢某個(gè)不常見的模塊是否是哪個(gè)模塊的引用
補(bǔ)充:golang開啟mod后import報(bào)紅解決
在golang中,開啟mod模式后,import包變紅,但是程序可以正常運(yùn)行
如下所示:
猜測是索引路徑出了問題,當(dāng)前項(xiàng)目的依賴路徑如下,可以看到只有sdk和GOPATH,沒有g(shù)o mod模塊
新建go項(xiàng)目,然后老老實(shí)實(shí)的go mod init [項(xiàng)目名],然后go build拉包,一切正常,這時(shí),在setting里再啟用go mod勾選上
然后,奇跡出現(xiàn)了,我們的依賴中,多了一個(gè)go mod路徑,這時(shí)原來報(bào)紅的import路徑消失了?。?!
總結(jié)
通過以上可以輕松了解在Golang中g(shù)o mod的使用方式。Go mod提供了一系列操作modules的命令,所有的go命令中現(xiàn)在已經(jīng)內(nèi)置了對module的支持,而不僅僅是go mod命令。例如使用go get時(shí),會(huì)經(jīng)常自動(dòng)在后臺(tái)添加、移除、升級、降級依賴包版本。
到此這篇關(guān)于Golang必知必會(huì)之GoMod命令詳解的文章就介紹到這了,更多相關(guān)GolangGoMod命令內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。