首頁 > 軟體

Golang必知必會之Go Mod命令詳解

2022-07-14 18:03:00

一、go mod 是什麼?

go modules 官方定義為:

模組是相關Go包的集合。modules是原始碼交換和版本控制的單元。
go命令直接支援使用modules,包括記錄和解析對其他模組的依賴性。modules替換舊的基於GOPATH的方法來指定在給定構建中使用哪些原始檔。

二、詳細命令

1. init

程式碼:

go mod init

生成 go.mod 檔案,此命令會在當前目錄中初始化和建立一個新的go.mod檔案,手動建立go.mod檔案再包含一些module宣告也等同該命令,而go mod init命令便是幫我們簡便操作,可以幫助我們自動建立。

2.download

程式碼:

go mod download

下載 go.mod 檔案中指明的所有依賴,使用此命令來下載指定的模組,模組的格式可以根據主模組依賴的形式或者path@version形式指定。

3.tidy

程式碼:

go mod tidy

整理現有的依賴,使用此命令來下載指定的模組,並刪除已經不用的模組

4.graph

程式碼:

go mod graph

檢視現有的依賴結構,生成專案所有依賴的報告,但可讀性太差,圖形化更方便。

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勾選上

然後,奇蹟出現了,我們的依賴中,多了一個go mod路徑,這時原來報紅的import路徑消失了!!!

總結

通過以上可以輕鬆瞭解在Golang中go mod的使用方式。Go mod提供了一系列操作modules的命令,所有的go命令中現在已經內建了對module的支援,而不僅僅是go mod命令。例如使用go get時,會經常自動在後臺新增、移除、升級、降級依賴包版本。

到此這篇關於Golang必知必會之Go Mod命令詳解的文章就介紹到這了,更多相關Golang Go Mod命令內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com