使用 go modules 包管理工具(一)

概述

我想實現一個開箱即用的 API 框架的輪子,這個輪子是基於 Gin 基礎上開發的。

爲何是開箱即用,它會集成哪些功能?


以上功能點,都是經常使用的,後期可能還會增長。

廢話很少說,我們開始吧。

建立一個項目,我們首先要考慮一個依賴包的管理工具。

常見的包管理有,dep、go vendor、glide、go modules 等。

最開始,使用過 dep,當時被朋友 diss 了,推薦我使用 go modules 。

如今來講一下 go modules ,這個是隨着 Go 1.11 的發佈和咱們見面的,這是官方提倡的新的包管理。

說一個環境變量:GO111MODULE,默認值爲 auto 。

當項目中有 go.mod 時,使用 go modules 管理,反之使用 舊的 GOPATH 和 vendor機制。

若是就想使用 go modules ,能夠將 GO111MODULE 設置爲 on 。

直接上手吧。

初始化

我們在 GOPATH 以外的地方,新建一個空文件夾 go-gin-api 。php

cd go-gin-api && go mod init go-gin-api

 



輸出:

git

go: creating new go.mod: module go-gin-api

 



這時目錄中多一個 go.mod 文件,內容以下:

  github

 module go-gin-api    
    go 1.12

 



到這,go mod 初始化就完成,接下來添加依賴包 - gin。

添加依賴包

在目錄中建立一個 main.go 的文件,放上以下代碼:

 api

   package main    
    import "github.com/gin-gonic/gin"    
    func main() {    
        r := gin.Default()    
        r.GET("/ping", func(c *gin.Context) {    
            c.JSON(200, gin.H{    
                "message": "pong",    
            })    
        })    
        r.Run() // listen and serve on 0.0.0.0:8080    
    }

 

這裏我還準備了一分學習圖和資料,以下:框架

連接:https://pan.baidu.com/s/1v5gm7n0L7TGyejCmQrMh2g 提取碼:x2p5

免費分享,可是X度限制嚴重,如若連接失效點擊連接或搜索加羣 羣號518475424編輯器


這代碼沒什麼特別的,就是官方的入門Demo。

接下來,開始下載依賴包。

ide

go mod tidy

 



執行完成後,看一下 go.mod 文件:

工具

    module go-gin-api    
    go 1.12    
    require github.com/gin-gonic/gin v1.4.0

 



這時,看到新增一個 gin v1.4.0 的包。

還生成了一個 go.sum 的文件,這個文件能夠暫時先無論。

這時發現了 2 個問題。

一、目錄中沒發現 gin 包,包下載到哪了?

下載到了 GOPATH/pkg/mod 目錄中。

二、GoLand 編輯器中關於 Gin 的引用變紅了?

在這裏編輯器須要設置一下,如圖:



點擊 Apply 和 OK 便可。

若是這招不靈,還能夠執行:

go mod vendor

這個命令是將項目依賴的包,放到項目的 vendor 目錄中,這確定就能夠了。

go mod 命令

go mod tidy

拉取缺乏的模塊,移除不用的模塊。

我經常使用這個命令。

go mod vendor

將依賴複製到vendor下。

我經常使用這個命令。

go mod download

下載依賴包。

go mod verify

檢驗依賴。

go mod graph

打印模塊依賴圖。

其餘命令,能夠執行 go mod ,查看便可。

小結

這篇文章,分享了 go modules 的使用。

    使用 go modules 從零搭建一個項目。

    GoLand 編輯器使用 go modules。

今天就到這了,下一篇文章開始搭建 API 項目了,寫參數驗證。

學習

相關文章
相關標籤/搜索