首頁  >  文章  >  後端開發  >  關於GO Modules的理解與遇到的問題

關於GO Modules的理解與遇到的問題

藏色散人
藏色散人轉載
2021-06-26 14:45:151965瀏覽

下面golang教學專欄為大家介紹關於GO Modules的理解和遇到的問題。

使用的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 Modules的使用与遇到的问题与解决方式
二、開啟編輯器,專案根目錄執行以下指令

go mod init

GO Modules的使用与遇到的问题与解决方式

三、安裝第三方依賴

GO Modules的使用与遇到的问题与解决方式

GO Modules的使用与遇到的问题与解决方式

GO Modules的使用与遇到的问题与解决方式

#現在可以看出GOModules和GOPATH的關係了,”go get」指令會把第三方依賴包放在GOPATH路徑下,GOModules在多人開發時為了使所有人的開發版本一致,做了版本控制,確保所有人使用的依賴都是一樣的版本,我的理解是GOModules是GOPATH的一種升級版本

GO Modules的理解和遇到的问题解决方法

最後注意一點,我使用的編輯器是GOLang,GOModules會出現如下問題,出現這個問題說明第三方依賴套件是成功下載安裝的,主要是編輯器的原因造成
GO Modules的使用与遇到的问题与解决方式

以下是解決方法

GO Modules的使用与遇到的问题与解决方式

GO Modules的使用与遇到的问题与解决方式


以上是關於GO Modules的理解與遇到的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除