golang模块无法将单个依赖项更新到我的.mod文件

我想更新模块存储库中的单个依赖项。</ p>

I 已经浏览了许多文档和JustForFunc视频,似乎做到这一点的方法是进入.mod文件,并将其从“ 1.0.0”更新为“ 1.2.0”,然后运行go build。</ p>

这可行,但是随后我看到我的整个go.mod文件在很多地方都发生了变化,包括那些不是间接的。 其中一些更改的版本是我项目中其他地方使用的依赖项的主要版本更改。 我明显的担心是,当我希望这些版本保持不变时,这将导致重大更改。</ p>

我正在使用模块并在我的GOPATH之外工作。</ p> \ n

是否有一种方法可以最小化我的.mod文件更改?</ p>
</ div>

展开原文

原文

I want to update a single dependency in my modules repo.

I've looked through lots of documentation and the JustForFunc videos and it seems like the way to do this is go into the .mod file and update from "1.0.0" to "1.2.0" and run go build.

This works, but then I see my entire go.mod file changed in many places, including those that are not indirects. Some of these changed versions are major version changes for dependencies used in other places in my project. My obvious fear is this will cause a breaking change when I want these versions to remain the same.

I'm using modules and working outside my GOPATH if that matters.

Is there a way to minimize my .mod file changes?

donglang7236
donglang7236 这听起来很合法,您能举一些例子吗?您的go.mod如何更改,这很奇怪?如果v1.2.0与您依赖于相同的模块,但依赖于较大的次要版本或补丁程序版本,则go.mod会更改而不会间接发生。这就是“最低版本选择”的含义。“主要版本更改”是什么意思?不同的主要版本是不同的模块,那么您将如何进行重大更改?如果您提供一些详细信息和示例,将使您更容易找到答案。
接近 2 年之前 回复

1个回答



tl; dr将 -mod = readonly </ code>传递给 go </ code>命令以防止它 从自动更新依赖关系到最新的次要版本/补丁版本。</ p>

每个 Go Wiki :</ p>


要升级或降级到更具体的版本,请执行 get'通过在包参数中添加@version后缀或“模块查询”来覆盖版本选择,例如go get github.com/gorilla/mux@v1.6.2,go get foo @ e3702bed2或go get foo @'
</ p> </ blockquote>

:</ p>
\ n


go工具提供了相当多的灵活性来调整或禁用这些默认行为,包括 通过-mod = readonly,-mod = vendor,GOFLAGS,GOPROXY = off,GOPROXY = file:/// filesystem / path,进入mod供应商并进入mod下载。</ p>

这些选项的详细信息遍布整个官方文档。 一个社区试图对与这些行为相关的旋钮进行统一概述是 ,其中包含指向官方文档的链接,以获取更多信息。</ p>
</ blockquote>
</ div>

展开原文

原文

tl;dr pass -mod=readonly to go commands to prevent it from automatically updating dependencies to the latest minor/patch releases.

Per the Go wiki:

To upgrade or downgrade to a more specific version, 'go get' allows version selection to be overridden by adding an @version suffix or "module query" to the package argument, such as go get github.com/gorilla/mux@v1.6.2, go get foo@e3702bed2, or go get foo@'

And from the same wiki:

The go tooling provides a fair amount of flexibility to adjust or disable these default behaviors, including via -mod=readonly, -mod=vendor, GOFLAGS, GOPROXY=off, GOPROXY=file:///filesystem/path, go mod vendor, and go mod download.

The details on these options are spread throughout the official documentation. One community attempt at a consolidated overview of knobs related to these behaviors is here, which includes links to the official documentation for more information.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问