Go Mod(三)如何使用模組

2021-10-09 09:17:05 字數 2272 閱讀 1119

如果安裝並支援模組

如果需要使用模組,有以下兩種方式(個人推薦方式一)

當你完成安裝後,你有一下兩種方式啟用模組支援

如何宣告乙個模組

為乙個已經存在的專案建立乙個go.mod檔案:

進入到專案根目錄

$ cd

如果是gopath路徑外,你不需要用go111moudle顯式啟用。

如果你想要在gopath路徑內使用:

$ # for linux or mac

$ export go111moudle=on

$ cd

$gopath/src/

對專案進行模組初始化,並將資訊寫入go.mod

$ go mod init
這一步將會建立go.mod並將模組資訊寫入,同時如果目錄存在其他型別的模組管理工具,將會自動匹配並以require指令匯入到go.mod檔案中。

共支援9種依賴引用格式:

glockfile

godeps/godeps.json

gopkg.lock

dependencies.tsv

glide.lock

vendor.conf

vendor.yaml

vendor/manifest

vendor/vendor.json

有關此部分的詳細資訊請檢視:go-模組轉換

值得注意的是,如果你引用了v2+的模組,或者正在構建、初始化這類模組,需要在go mod init指令執行之後,手動編輯go.mod、go檔案,引用指定的模組路徑。

可以參考語義版本控制進行修正。

即使已經從其他以來管理工中轉換過來了。

直到你成功執行go build指令後,你才可以使用go tidy指令。

正常操作希望操作的指令即可

go build ./...go test ./...go test all

如何公升級或降級依賴版本

日常的公升級、降級操作通過指令go get自動更新go.mod檔案來實現,當然,你可以選擇直接編輯go.mod檔案。

將指定依賴公升級到最高可用版本:

$ go get example.com/package
更新某個依賴項以及他的依賴到最新可用版本

$ go get -u example.com/package
檢視所有依賴(直接或間接)的minorpatch的最高可用資訊。

$ go list -u -m all
檢視所有直接引用的模組的minorpatch版本資訊

$ go list -u -f '}}: } -> }}' -m all 2> /dev/null

go list -u -f為格式化輸出,-f後面跟上格式化方式,支援基本布林運算。

這句話理解起來有些難度,用處不是特別大,比如你想查詢所有的目錄,可以使用:

$ go list -f 

}

加上直接依賴

$ go list -f 

}

後面的指令可以類推

更多詳細的資訊可以檢視

$ go help list
在當前模組內,將所有直接或間接依賴公升級到最新最新可用版本,在根目錄執行:

$ go get -u ./...

$ go get -u=patch
公升級指定包

$ go get foo

$ go get -u foo

設定模組路徑 go mod模組管理

gopath的基本理解 src 目錄包含源 src下面的路徑確定匯入路徑或可執行檔名。pkg 目錄包含已安裝的包物件。每個目標作業系統和體系結構對都有自己的子目錄pkg pkg goos goarch bin 目錄儲存已編譯的命令。go mod go 1.11 有了對模組的實驗性支援,大部分的子命令...

Go mod 簡單使用

我用的vscode,暫時沒有發現ide建立mod project的功能,所以手動建立了 mkdir gotest cd gotest go mod init gotest go creating new go.mod module gotest package main import fmt go....

gomod使用小結

此時,go.mod中記錄了依賴包及其版本號。執行以下兩個命令即可 go env w go111module on go env w goproxy 如果想更好的控制,可以修改go111module臨時環境變數。go111module的取值為off,on,or auto 預設值 可以直接檢視 go.m...