一文帶你瞭解 Go mod!
什麼是 Go mod? go mod 是 Go 語言的模塊管理工具, 可用來代替傳統的 GOPATH。
go mod 和 GOPATH 的區別有哪些?
-
go mod 的代碼開發不侷限於某一個目錄,GOPATH 的代碼開發必須在 GOPATH 的 src 目錄下
-
go mod 的依賴無需手動管理,可執行一條命令後自動管理依賴, GOPATH 的包依賴需要一個一個解決
-
go mod 在使用之前需要先開啓,默認是沒有開啓的,GOPATH 不需要特別設置,只要進入到 src 目錄下就可以進行開發
注: 要使用 go mod,必須將 golang 升級到 1.11 版本以上
一、安裝與部署
1、首先查看 go 版本,執行命令如下:
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(默認),說明如下:
-
GO111MODULE=off,關閉 go mod,尋找依賴包通過舊版本的 vendor 目錄或者 GOPATH 目錄來查找
-
GO111MODULE=on,開啓 go mod,尋找依賴包不會去 GOPATH 目錄下查找
-
GO111MODULE=auto,默認值,go 將會根據當前目錄來決定是否啓用 module 功能
3、查看配置後的環境變量信息,如圖:
4、查看 go mod 的常用命令如下:
1、首先在服務器上任意位置創建演示項目 demo,如下:
3、創建演示文件,內容如下:
從上圖看出,此文件中引用了 web 框架 gin,但是目前機器中還沒有此包,如果不通過 go mod 管理依賴,會提示使用 go get 下載包,如圖:
如果仔細看項目路徑下還可以看到 go.sum 文件,這個文件是幹嘛的呢?由於考慮下載的依賴包有可能被惡意篡改,只有一個 go.mod 無法保證數據的一致性,因此引入了 go.sum 文件,用於記錄每個包的哈希值,在構建的時候,如果本地的依賴包的哈希值與 go.sum 中的記錄紙不一致,那麼將拒絕構建。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/OCSUNyLedBZ3bnQGPzEwuw