Golang必知必會之Go?Mod命令詳解
一、go mod 是什么?
go modules 官方定義為:
模塊是相關Go包的集合。modules是源代碼交換和版本控制的單元。
go命令直接支持使用modules,包括記錄和解析對其他模塊的依賴性。modules替換舊的基于GOPATH的方法來指定在給定構建中使用哪些源文件。
二、詳細命令
1. init
代碼:
go mod init
生成 go.mod 文件,此命令會在當前目錄中初始化和創(chuàng)建一個新的go.mod文件,手動創(chuàng)建go.mod文件再包含一些module聲明也等同該命令,而go mod init命令便是幫我們簡便操作,可以幫助我們自動創(chuàng)建。
2.download
代碼:
go mod download
下載 go.mod 文件中指明的所有依賴,使用此命令來下載指定的模塊,模塊的格式可以根據主模塊依賴的形式或者path@version形式指定。
3.tidy
代碼:
go mod tidy
整理現(xiàn)有的依賴,使用此命令來下載指定的模塊,并刪除已經不用的模塊
4.graph
代碼:
go mod graph
查看現(xiàn)有的依賴結構,生成項目所有依賴的報告,但可讀性太差,圖形化更方便。
5.edit
代碼:
go mod edit
編輯 go.mod 文件,之后通過 download 或 edit 進行下載
5.vendor
代碼:
go mod vendor
導出項目所有的依賴到vendor目錄,從mod中拷貝到項目的vendor目錄下,IDE可以識別這樣的目錄。
5.verify
代碼:
go mod verify
校驗一個模塊是否被篡改過,查詢某個常見的模塊出錯是否已被篡改
5.why
代碼:
go mod why
查看為什么需要依賴某模塊,查詢某個不常見的模塊是否是哪個模塊的引用
補充:golang開啟mod后import報紅解決
在golang中,開啟mod模式后,import包變紅,但是程序可以正常運行
如下所示:
猜測是索引路徑出了問題,當前項目的依賴路徑如下,可以看到只有sdk和GOPATH,沒有go mod模塊
新建go項目,然后老老實實的go mod init [項目名],然后go build拉包,一切正常,這時,在setting里再啟用go mod勾選上
然后,奇跡出現(xiàn)了,我們的依賴中,多了一個go mod路徑,這時原來報紅的import路徑消失了?。?!
總結
通過以上可以輕松了解在Golang中go mod的使用方式。Go mod提供了一系列操作modules的命令,所有的go命令中現(xiàn)在已經內置了對module的支持,而不僅僅是go mod命令。例如使用go get時,會經常自動在后臺添加、移除、升級、降級依賴包版本。
到此這篇關于Golang必知必會之Go Mod命令詳解的文章就介紹到這了,更多相關Golang Go Mod命令內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
golang結構化日志log/slog包之slog.Record的用法簡介
這篇文章主要為大家詳細介紹了golang結構化日志log/slog包中slog.Record結構體的使用方法和需要注意的點,文中的示例代碼講解詳細,需要的可以學習一下2023-10-10關于golang利用channel和goroutine完成統(tǒng)計素數(shù)的思路
這篇文章主要介紹了golang利用channel和goroutine完成統(tǒng)計素數(shù)的思路詳解,通過思路圖分析及實例代碼相結合給大家介紹的非常詳細,需要的朋友可以參考下2021-08-08