如果安裝並支援模組
如果需要使用模組,有以下兩種方式(個人推薦方式一)
當你完成安裝後,你有一下兩種方式啟用模組支援
如何宣告乙個模組
為乙個已經存在的專案建立乙個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
檢視所有依賴(直接或間接)的minor
和patch
的最高可用資訊。
$ go list -u -m all
檢視所有直接引用的模組的minor
和patch
版本資訊
$ 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...