使用的go版本是1.16.5,程式碼編輯器是GoLang2020.3.4,是在window10上面做GO Modules測試
為何會有GOModules的出現
GOROOT是指go的安裝路徑,GOPATH是指go的專案路徑,在沒有GOModules之前用的是GOPATH,由於GOPATH存在很多問題,從而使用GOModules進行代替
GOPATH存在的問題
GOPATH模式下沒有版本控制的概念,具有致命的缺陷,至少會造成以下問題的產生:
1.在執行go get的時候,你無法傳達任何的版本資訊的期望,也就是說你也無法知道自己當前更新的是哪一個版本,也無法透過指定來拉取自己所期望的具體版本
2.在執行 Go 應用程式的時候,你無法保證其它人與你所期望依賴的第三方庫是相同的版本,也就是說在專案依賴庫的管理上,你無法保證所有人的依賴版本都一致
3.你沒辦法處理v1,v2,v3,等等不同版本的引用問題,因為GOPATH模式下的匯入路徑都是一樣的,都是github.com/foo/bar。
4.Go 語言官方從 Go1.11 起開始推進 Go modules(前身vgo),Go1.13 起不再推薦使用 GOPATH 的使用模式,Go modules 也漸趨穩定,因此新專案也沒有必要繼續使用GOPATH模式。
GOModules的出現解決了哪些問題
1.Go語言長久以來的依賴管理問題
2.“淘汰”現有的GOPATH的使用模式
3.統一社群中的其它的依賴管理工具(提供遷移功能)
GOModules和GOPATH的關係
一、設定一下專案路徑
二、開啟編輯器,專案根目錄執行以下命令
go mod init
三、安裝第三方依賴
現在可以看出GOModules和GOPATH的關係了,”go get”命令會把第三方依賴包放在GOPATH路徑下,GOModules在多人開發時為了使所有人的開發版本一致,做了版本控制,確保所有人使用的依賴都是一樣的版本,我的理解是GOModules是GOPATH的一種升級版本
最後注意一點,我使用的編輯器是GOLang,GOModules會出現如下問題,出現這個問題說明第三方依賴包是成功下載安裝的,主要是編輯器的原因造成
以下是解決方法
本作品採用《CC 協議》,轉載必須註明作者和本文連結