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可以識別這樣的目錄。
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路徑消失了?。。?/p>
總結(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ì)之Go Mod命令詳解的文章就介紹到這了,更多相關(guān)Golang Go Mod命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Golang 語言控制并發(fā) Goroutine的方法
本文我們介紹了不同場景中分別適合哪種控制并發(fā) goroutine 的方式,其中,channel 適合控制少量 并發(fā) goroutine,WaitGroup 適合控制一組并發(fā) goroutine,而 context 適合控制多級并發(fā) goroutine,感興趣的朋友跟隨小編一起看看吧2021-06-06300行代碼實(shí)現(xiàn)go語言即時(shí)通訊聊天室
本文主要介紹了300行代碼實(shí)現(xiàn)go語言即時(shí)通訊聊天室,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Go語言切片前或中間插入項(xiàng)與內(nèi)置copy()函數(shù)詳解
這篇文章主要介紹了Go語言切片前或中間插入項(xiàng)與內(nèi)置copy()函數(shù)詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04Golang學(xué)習(xí)筆記(四):array、slice、map
這篇文章主要介紹了Golang學(xué)習(xí)筆記(四):array、slice、map,本文分別講解了這3個(gè)類型的聲明&賦值、元素訪問、其它操作,需要的朋友可以參考下2015-05-05