一篇文章教會你如何使用Go語言Modules

點擊上方“ Go語言進階學習 ”,進行關注

回覆“Go語言”即可獲贈Python從入門到進階共10本電子書

捫參歷井仰脅息,以手撫膺坐長嘆。

前言

go moudules是Go的一個包管理工具,官方提供的,還是比較靠譜的,最低Go版本要求1.11+。

可以理解爲Python的虛擬環境,或者Java的maven,PHP的composer。

其本質解決的問題就是包管理混亂問題。

反正就是,用就完事了,只有好事,沒有壞事。


配置(不用管)

GO111MODULE=off # 不適用modules功能GO111MODULE=off #使用molules功能,不會去GOPATH下找依賴包, 1.11+版本默認開啓GO111MODULE=auto:Golang # Golang自己簡則是不是使用modules功能

根據上述命令,可以得到結論,在1.11+版本中,默認就是可以使用go modules的,不需要做其他設置。


它和傳統的直接go get區別在哪

沒有使用go modules時,我們直接go get下載的包,會默認放在%GOPATH%/src目錄下。

啓用go modules後,包都會下載到%GOPATH%/pkg/mod文件夾中。

並且會帶版本號,基本徹底解決依賴問題。


開始使用

創建go.mod文件

go.mod文件相當於requirement.txt文件,裏面會放一些所需要的依賴包。


開始使用

我創建了一個gomod-demo文件夾。

並且CMD進入此文件夾裏面。

執行命令go mod init gomod-demo

後面這個gomod-demo可以隨便寫,建議和文件夾名字一樣。

成功後,文件夾下會多了一個go.mod文件,代表成功。

我用Goland打開這個gomod-demo文件夾。

go.mod文件說明

  1. module:模塊名稱。

  2. require:依賴包列表以及版本。

  3. exclude:禁止依賴包列表(僅在當前模塊爲主模塊時生效)。

  4. replace:替換依賴包列表(僅在當前模塊爲主模塊時生效)。

當然,這些基本我們不需要動,都是通過命令或者IDE修改的


簡單使用

比如我需要使用一個xstrings 包。

github地址:https://github.com/huandu/xstrings

需要執行此命令安裝此包。

執行下載命令。

go.mod文件會自動添加一個依賴包。

代碼:

package main
import ( "fmt" "github.com/huandu/xstrings")
func main() { s := "heheh ADSL附近" center := xstrings.Count(s, "h") fmt.Println(center)}

go連接Mysql

github文檔如下。

執行下載命令 go get -u github.com/go-sql-driver/mysql

go.mod文件如下。

代碼:

package main
import ( "database/sql" _ "github.com/go-sql-driver/mysql" "time")
func main() { //s := "heheh ADSL附近" //center := xstrings.Count(s, "h") //fmt.Println(center) db, err := sql.Open("mysql""user:password@/dbname") if err != nil { panic(err)} // See "Important settings" section. db.SetConnMaxLifetime(time.Minute * 3) db.SetMaxOpenConns(10) db.SetMaxIdleConns(10)}

可能出現的異常

如果使用go get 第三方包時,goland無法導入,或者報錯,或者沒有Go Modules

項目目錄下,使用go mod download下載一下,基本可以解決問題,只要有Go Modules,就代表沒問題。

如果還是沒有Go Modules,在Goland中settings->Go->GoModules(vgo)

go mod所有命令

在當前文件夾下初始化一個新的 module,創建 go.mod 文件:go mod init name拉取缺少的模塊,移除不用的模塊:go mod tidy將依賴複製到 vendor:go mod vendor下載依賴:go mod download檢驗依賴:go mod verify顯示模塊依賴圖:go mod graph解釋爲什麼需要依賴:go mod why編輯 go.mod 文件:go eidt查看命令列表:go mod查看命令幫助文檔:go help mod

總結

上述我們學習了go mod的如何使用。如果在操作過程中有任務問題,記得下面討論區留言,我們看到會第一時間解決問題。

我是碼農星期八,如果覺得還不錯,記得動手點贊以下哈,感謝你的觀看~

------------------- End -------------------

歡迎大家點贊轉發,轉載,感謝大家的相伴與支持

想加入學習羣請在後臺回覆【入羣

萬水千山總是情,點個【在看】行不行

本文分享自微信公衆號 - Go語言進階學習(gh_dced3d6523fb)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章