一文帶你瞭解 Go mod!

什麼是 Go mod? go mod 是 Go 語言的模塊管理工具, 可用來代替傳統的 GOPATH。

go mod 和 GOPATH 的區別有哪些?

注: 要使用 go mod,必須將 golang 升級到 1.11 版本以上

一、安裝與部署

1、首先查看 go 版本,執行命令如下:

2、配置開啓 go mod,執行命令如下:

go env -w GOBIN=/usr/local/go/bin              #配置下go bin
go env -w GO111MODULE=on                       #開啓go mod
go env -w GOPROXY=https://goproxy.cn,direct    #七牛雲代理

GO111MODULE 有三個值:off, on 和 auto(默認),說明如下:

3、查看配置後的環境變量信息,如圖:

4、查看 go mod 的常用命令如下: 二、通過 go mod 管理項目

1、首先在服務器上任意位置創建演示項目 demo,如下:2、進入項目 demo 中,初始化項目,如圖: 從上圖看出,初始化後,在項目目錄下生成了 go.mod 文件,文件內容包含模塊名和 go 的版本信息

3、創建演示文件,內容如下:

從上圖看出,此文件中引用了 web 框架 gin,但是目前機器中還沒有此包,如果不通過 go mod 管理依賴,會提示使用 go get 下載包,如圖:如果一個項目中有多個依賴,那麼每個依賴都要手動執行一次 go get 去慢慢下載,很浪費時間和精力,此時可以通過 go mod 來管理是最佳的,我們此時可以執行命令 go mod tidy,如圖: 從上圖可以看出,依賴包都已經下載完成,查看 go.mod 文件中也可以看到相關依賴,此時在執行便不會提示缺少依賴,如圖:

如果仔細看項目路徑下還可以看到 go.sum 文件,這個文件是幹嘛的呢?由於考慮下載的依賴包有可能被惡意篡改,只有一個 go.mod 無法保證數據的一致性,因此引入了 go.sum 文件,用於記錄每個包的哈希值,在構建的時候,如果本地的依賴包的哈希值與 go.sum 中的記錄紙不一致,那麼將拒絕構建。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/OCSUNyLedBZ3bnQGPzEwuw