go.mod
go.mod是Go模块的根配置文件,它定义了模块的路径(即模块名称)和模块的依赖要求(包括依赖的模块路径和版本)。这个文件是在使用Go模块(Go 1.11及以上版本引入)时创建的,它取代了旧的依赖管理方式(如GOPATH和vendor机制)。
go.mod文件通常包含以下内容:
-
模块声明:使用
module指令指定模块的路径。 -
Go版本要求:使用
go指令指定项目所需的Go版本。 -
依赖要求:使用
require指令指定项目所依赖的其他模块和版本。 -
排除依赖:使用
exclude指令排除特定版本的依赖(不常用)。 -
替换依赖:使用
replace指令将依赖替换为本地路径或其他版本(常用于调试或本地开发)。
go.mod
module example.com/myproject
go 1.16
require (
github.com/some/dependency v1.2.3
github.com/another/dependency v0.1.0
)
replace github.com/gin-gonic/gin => ../local/gin //替换为本地路径
exclude github.com/gin-gonic/gin v1.9.0 // 排除 v1.9.0 版本
go.sum 是依赖校验文件,确保依赖的完整性和安全性
go.sum文件记录了每个依赖库的版本和对应的哈希值。这个文件是由Go工具自动生成和更新的,它确保了项目所依赖的模块的完整性。当你下载依赖时,Go工具会计算依赖模块的哈希值,并与go.sum文件中记录的哈希值进行比对,以确保依赖模块没有被篡改。
go.sum文件中的每一行都由模块路径、版本和哈希值组成。通常,每个依赖版本会对应两个条目:一个使用h1:前缀的哈希值(表示模块zip文件的哈希),另一个使用go.mod哈希(表示该模块的go.mod文件的哈希)
github.com/some/dependency v1.2.3 h1:abc123... github.com/some/dependency v1.2.3/go.mod h1:def456... github.com/another/dependency v0.1.0 h1:ghi789... github.com/another/dependency v0.1.0/go.mod h1:jkl012...
posted on
浙公网安备 33010602011771号