在 Go Module 模式底下使用 go get
取得套件的時候常常會有各種版號出現,例如 v1.0.2、v2.0.3 +incompatible、甚至是一段 hash v0.0.0-20200226145339-3e397ee01bc6。 還有取得 v2 版本的時候,有時候是 go get github.com/my/foo@v2.2.0
有時候是 go get github.com/my/foo/v2@v2.2.0
。 為了搞懂這些差別,我參考了一些官方文章還有做了一些實驗,今天就來解說這些差別到底是什麼情況。
今天要來筆記一下學到的 Go Module 的指令,這篇文章只會紀錄一些我覺得會常用的指令,並不會說明什麼是 Module,如果要了解什麼是 Module 可以參考 Go 1.11 Modules。
此文章會說明的指令有 $ go mod init <module name>
, $ go list
, $ go get
, $ go mod verify
, $ go mod tidy
, $ go mod why <package>
, $ go mod edit
, $ go mod vendor
。
Continue reading