2022年8月更文挑战8-golang包版本管理

285 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情

golang包版本管理

前文

本文内容为golang进行包版本管理的相关知识,主要内容为个人对于知识的总结,其中难免存在不准确之处。

golang版本管理的方式

说起golang的依赖包版本管理,常用的主要是有两种方式。

第一种是原始的采用go path的包管理方式,另一种则是在1.11后引入的go mod的包管理方式。采用原始的go path的管理方式进行包管理时,需要我们首先将项目的代码放入到gopath目录的src下面。当然,可以指定多个gopath。对于依赖的包,我们需要手动进行管理,且没有版本管理的概念。

第二种管理方式则是使用go mod。go mod出现于1.11版本之后,所有的依赖包存在于$GOPATH/pkg目录下,且项目地址不需要位于gopath下。同一个包可以进行多个版本的引入,多项目可以共享引入的module。

如何使用go mod进行包版本管理

  • 初始化项目
    • 进入到项目文件夹后,需要我们在此处执行go mod init xxx,xxx也就是我们项目的名称,同样可以认为是我们这个项目的module名称。
  • 添加依赖
    • 在代码中正常的进行程序编写,引入我们需要的依赖。当代码运行时,程序会自动进行依赖的查找,并将其写入到mod文件当中。
        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()
        }
    
  • 依赖升级
    • go get package@version 将依赖升级到指定的版本。当然还有一些其他的升级方式,可以通过go mod help进行了解。
  • 发布自己的module
    • 初始化时go mod init直接采用github的项目地址
    • 将项目上传到github上
    • 添加tag进行版本管理

后记

  • 千古兴亡多少事?悠悠。不尽长江滚滚流。