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 2025-10-31 15:27  boye169  阅读(9)  评论(0)    收藏  举报