我想在模块存储库中更新单个依赖项。
我浏览了许多文档和JustForFunc视频,似乎执行此操作的方法是进入.mod文件并将其从“ 1.0.0”更新为“ 1.2.0”并运行go build。
这行得通,但是随后我看到我的整个go.mod文件在很多地方都发生了变化,包括那些不是间接的。其中一些更改的版本是我项目中其他地方使用的依赖项的主要版本更改。我明显的担心是,当我希望这些版本保持不变时,这将导致重大变化。
我正在使用模块,并在我的GOPATH之外工作。
有没有一种方法可以最小化我的.mod文件更改?
tl; dr传递-mod=readonly给go命令,以防止其自动将依赖关系更新为最新的次要/修补程序版本。
根据Go Wiki:
要升级或降级到更特定的版本,“ go get”允许通过在软件包参数中添加@version后缀或“模块查询”来覆盖版本选择,例如go get github.com/gorilla/mux@v1。 6.2,进入foo @ e3702bed2或进入foo @'
并且从同一个Wiki:
go工具为调整或禁用这些默认行为提供了很大的灵活性,包括通过-mod = readonly,-mod = vendor,GOFLAGS,GOPROXY = off,GOPROXY = file:/// filesystem / path,go mod供应商,并去国防部下载。
这些选项的详细信息遍布整个官方文档。此处是一个社区,试图对与这些行为相关的旋钮进行综合概述,其中包括指向官方文档的链接,以获取更多信息。