go.mod
对于上次接触 golang
这门语言还是在上次了,最近对 zig
比较感兴趣,而突然折腾回 golang
的时候发现这玩意在1.1.1
版本更新了一个叫go.mod
的东西。
go.mod
是Go语言的官方包管理工具,用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。Go.mod其实就是一个Modules,关于Modules的官方定义为:Modules是相关Go包的集合,其中包含了它们的依赖关系和版本信息,它们被组织在一起,并以一种允许Go语言编译器、测试工具和其他工具访问它们的方式进行管理。在Go语言中,使用Go.mod文件来定义项目的依赖关系,并且在编译项目时,Go会自动下载和安装所需要的依赖包及其版本信息。
除了go.mod之外,go命令还维护一个名为go.sum的文件,其中包含特定模块版本内容的预期加密哈希
go命令使用go.sum文件确保这些模块的未来下载检索与第一次下载相同的位,以确保项目所依赖的模块不会出现意外更改,无论是出于恶意、意外还是其他原因。 go.mod和go.sum都应检入版本控制。
go.sum 不需要手工维护,所以可以不用太关注。
go.mod的使用方法
1.创建 go.mod
# 在你的工程文件目录下
go mod init example.com/myproject
通过以上命令,我们会发现在项目的根目录下创建了一个名为go.mod
的模块文件,里面默认有go的版本信息。这是一个关键文件,之后的包的管理都是通过这个文件管理。
2.go.mod
的命令
module
指定包的名字(路径)require
指定的依赖项模块replace
可以替换依赖项模块exclude
可以忽略依赖项模块
3.安装包
如果想要使用其他的包,我们需要先安装它们。
go get github.com/user/repo
随后在 go.mod
文件中添加依赖包的信息,该文件中,每个依赖包都由一个module path
和一个以来版本号表示,例如:
module main
go 1.21.0
require (
github.com/gorilla/mux v1.8.0
github.com/lib/pq v1.10.0
)
其中,module path
是该模块的地址,以来版本号是该模块的版本。require
部分是该模块的依赖关系。
编译程序时,Go会自动下载和安装所需要的依赖包及其版本信息。
go build -mod vender
标签:文件,依赖,浅谈,Go,模块,go,mod From: https://www.cnblogs.com/sakurair/p/17655148.html其中
-mod vendor
表示使用go.mod
文件中指定的依赖包地址。