简单聊聊 GOPATH 与 Go Modules

发布网友 发布时间:2024-10-18 20:44

我来回答

1个回答

热心网友 时间:2024-10-26 15:23

胖虎最近招了个实习生,发现他很少与同事交流,于是决定了解他的学习情况。首先,胖虎询问了实习生对 GOROOT 的理解。

实习生答道,GOROOT 是环境变量,其值为 Golang 安装包路径,简单易懂。

接着,胖虎询问了 GOPATH 的概念。实习生解释,这是 Golang 1.5 版本之前的环境变量配置,用于存放项目代码文件路径。

要查看 GOPATH 路径,只需在命令控制台输入相应命令或进入 GOPATH 目录查看其中文件。

使用 GOPATH 模式时,应用代码需存放于 $GOPATH/src 目录下,且 go get 命令会自动下载并安装依赖至 GOPATH。

在 GOPATH 模式下,代码存放路径受限,即使是学习资料盘满也不可随意放置。

实习生提出疑问,除了路径,GOPATH 是否还有其他缺点。胖虎解释,除了路径,GOPATH 还存在配置复杂和版本管理问题。

为解决这些问题,官方在 go 1.11 版本中推出了 Go Modules,通过设置环境变量 GO111MODULE 实现开启或关闭。

开启 Go Modules 模式后,项目代码存放位置自由,不同版本管理方便,大大提高了开发效率。

在使用 Go Modules 时,可能会遇到从 github 下载包不成功的状况,这时可以设置 GOPROXY 环境变量,通过镜像站点快速拉取所需代码。

实习生询问了如何使用 Go Modules,胖虎演示了在 go1.17.3 版本下创建空目录并执行 go mod 命令的过程。

在使用 go mod 后,项目的 go.mod 文件会自动生成,记录了项目依赖信息。使用 go get 命令引入第三方包后,go.mod 文件会自动更新。

go mod tidy 命令用于清理项目中未使用的依赖,go mod edit 则用于管理项目中引用的开源项目源代码。

在项目修改 go.mod 文件后,通常需要一起提交 go.sum 文件,以确保项目依赖版本不被篡改。如果不提交 go.sum 文件,可能导致依赖版本管理混乱。

至此,胖虎与实习生的对话中,详细介绍了 GOPATH 与 Go Modules 的使用方法及注意事项,为实习生提供了全面的指导。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com