日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

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

作者:貓輕王 ? 更新時間: 2022-09-07 編程語言

一、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時,會經常自動在后臺添加、移除、升級、降級依賴包版本。

原文鏈接:https://blog.csdn.net/moer0/article/details/123490476

欄目分類
最近更新