searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

GO语言模块(module)详解

2023-10-09 01:25:43
2
0

go语言在1.11版本之前,都是使用GOPATH设置模块搜索路径,导致三方依赖和自定义依赖等随意放置,导致项目逻辑非常混乱。但从1.11版本开始,引入了新的go模块管理机制(go modules)。本文将以1.18版本来对go module做出详解。为什么对版本1.18情有独钟呢,那是因为它推出了工作区的概念,基本思路就是:每一个模块需要一个go.mod文件用于指定模块名和go的版本,并不需要指定引用模块的路径。

样例

创建demo模块

mkdir demo
cd demo
go mod init github.com/demo

go.mod就是整个工程的核心文件。

关键字段介绍:

module: 定义模块路径

go: 设置版本

require: 要求给定版本或更高版本的特定模块

exclude: 排除特定版本模块的使用,不允许的模块版本被视为不可用,并且查询无法返回。

replace:使用不同的模块版本来替代原有模块版本。通常用于本地调试使用。

go.sum是版本管理文件

每行由模块导入路径、模块的特定版本和预期哈希组成

在每次缺少模块时,如果缓存中不存在,则需要下载并计算其哈希添加到 go.sum 中;如果缓存中存在,则需要匹配 go.sum 中的已有条目。

0条评论
作者已关闭评论
杨锦
8文章数
0粉丝数
杨锦
8 文章 | 0 粉丝
杨锦
8文章数
0粉丝数
杨锦
8 文章 | 0 粉丝
原创

GO语言模块(module)详解

2023-10-09 01:25:43
2
0

go语言在1.11版本之前,都是使用GOPATH设置模块搜索路径,导致三方依赖和自定义依赖等随意放置,导致项目逻辑非常混乱。但从1.11版本开始,引入了新的go模块管理机制(go modules)。本文将以1.18版本来对go module做出详解。为什么对版本1.18情有独钟呢,那是因为它推出了工作区的概念,基本思路就是:每一个模块需要一个go.mod文件用于指定模块名和go的版本,并不需要指定引用模块的路径。

样例

创建demo模块

mkdir demo
cd demo
go mod init github.com/demo

go.mod就是整个工程的核心文件。

关键字段介绍:

module: 定义模块路径

go: 设置版本

require: 要求给定版本或更高版本的特定模块

exclude: 排除特定版本模块的使用,不允许的模块版本被视为不可用,并且查询无法返回。

replace:使用不同的模块版本来替代原有模块版本。通常用于本地调试使用。

go.sum是版本管理文件

每行由模块导入路径、模块的特定版本和预期哈希组成

在每次缺少模块时,如果缓存中不存在,则需要下载并计算其哈希添加到 go.sum 中;如果缓存中存在,则需要匹配 go.sum 中的已有条目。

文章来自个人专栏
边缘计算
8 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0