匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

【最全攻略】goland中关于Go Modules的使用指南

引言

Go 1.11 引入了模块化支持以解决 Go 项目依赖管理问题。从 Go 1.13 开始,模块被默认启用。Go Modules 是 Go 语言自带的版本控制系统,类似于 Maven 的 POM 依赖,Ruby 的 Gemfile / GemSpec 依赖,Node.js 的 package.json 依赖管理体系。

在本文中我们将探讨使用 Go Modules 管理你的 Go 项目依赖。

部分 1:创建一个 Go Modules

在使用 Go Modules 之前,需要创建一个 Go Modules 。

打开 Terminal ,进入 Go 项目文件夹中,使用以下命令启用 Go Modules 。

```shell
go mod init example.com/myproject
```

以上命令将创建一个新模块并初始化一个 go.mod 文件。 替换 example.com/myproject 为您自己的模块名称和路径。

现在,您可以继续在您的项目中使用您的依赖项。假设我们需要使用 gin 框架,使用以下命令下载 gin 到本地路径。

```shell
go get -u github.com/gin-gonic/gin
```

它将下载 gin 并将其添加到go.mod文件中。使用以上命令,您可以将所有依赖项添加到 go.mod 文件中。现在让我们更深入地了解 go.mod 文件的结构。

部分 2:Go Modules 文件

go.mod 文件是 Go Modules 管理 Go 项目依赖的清单文件。在以下示例中,查看 go.mod 文件的结构及其内容。

```go
module github.com/username/repo

go 1.15

require (
    github.com/gin-gonic/gin v1.6.3
    github.com/go-sql-driver/mysql v1.6.0
    github.com/gorilla/mux v1.7.5
)
```

第一行中,module 命令指定了模块的名称以及模块代码所在的版本库。

go 1.15 声明了依赖模块必须支持 Go 1.15,这是 Go 1.16 之前所支持的最新版本。

require 命令定义了依赖关系。 在上面的示例中,我们需要使用 gin (版本1.6.3)、mysql 驱动器版本1.6.0、gorilla/mux (版本1.7.5)。

您还可以使用以下命令列出项目的所有依赖项:

```shell
go list -m all
```

部分 3:依赖管理

Go 模块非常方便,它不需要你手动管理依赖项。 在这种情况下,我们可以把所有项目依赖项保存在 go.mod 文件中。 根据项目的要求,我们可以随时添加、删除、更新依赖项。

以下命令有助于添加依赖项:

```shell
go get github.com/gin-gonic/gin
```

它将下载 gin 框架并将其添加到 go.mod 文件中。

以下命令有助于更新依赖项:

```shell
go get -u github.com/gin-gonic/gin
```

它将更新 gin 框架并将其添加到 go.mod 文件中。

以下命令有助于删除依赖项:

```shell
go mod tidy
```

它将只保留需要使用的依赖项并删除其余的依赖项。

部分 4:依赖版本管理

Go Modules 支持通过依赖版本管理来锁定依赖项的版本。

以下是某个 Go 模块的示例:

```go
module github.com/username/repo
go 1.15

require (
  github.com/gin-gonic/gin v1.6.3
  github.com/go-sql-driver/mysql v1.6.0
)
```

在上面的示例中,我们使用 gin v1.6.3 版本和 mysql v1.6.0 版本的驱动器。假设 gin 发布了一个新版本 gin v1.7.0。 现在,我们想升级到gin v1.7.0,请使用以下命令:

```shell
go get github.com/gin-gonic/gin@v1.7.0
```

它将下载 gin v1.7.0 并锁定它。因此,我们的 go.mod 文件将包含 gin v1.7.0 版本。

部分 5:Go Modules 测试

现在,我们已经介绍了 Go Modules 的基础知识,我们将测试它是否有效。让我们基于 gin 框架构建一个简单的 Web 应用程序。

首先,我们要确保我们的包管理器已经下载 gin 框架。

```shell
go get -u github.com/gin-gonic/gin
```

以上命令将下载 gin 框架并锁定版本。

创建一个新文件 app.go 和复制以下代码:

```go
package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "Hello World!",
        })
    })
    r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}
```

运行以下命令开始测试您的代码:

```shell
go run app.go
```

以上命令将启动 Web 服务器并监听请求。 打开浏览器并输入 ,您将看到 "Hello World"。 恭喜!我们已经成功创建了一个简单的 Web 应用程序,使用 Go Modules 管理依赖项。

结论

在本文中,我们了解了如何使用 Go Modules 管理项目的依赖项。 使用 Go Modules 可以帮助我们轻松地管理项目的所有依赖项并允许我们轻松地添加、删除和更新依赖项。 感谢您的阅读。