登录
首页 >  Golang >  Go问答

取得 Pin 版本 (附带 go get)

来源:stackoverflow

时间:2024-02-16 21:45:22 163浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《取得 Pin 版本 (附带 go get)》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

我想固定一个包的版本,所以每当我运行时

go get -u ./...

..这个包将保持不变(但其余部分正常刷新)。


解决方案


使用go modules。它是专门为处理精确版本控制而设计的。

在包的 go.mod 中,您可以将任何依赖项固定到固定版本,例如

module example.com/hello
go 1.12
require (
    golang.org/x/text v0.3.0 // indirect
    rsc.io/quote v1.5.2
    rsc.io/quote/v3 v3.0.0
    rsc.io/sampler v1.3.1 // indirect
)

您可以更新单个软件包版本,例如:

go get rsc.io/quote/v3@master

将拉取最新的提交版本(甚至超越任何 semver 标记的版本)。 您还可以手动编辑 go.mod 以提高精度。

附注go 模块需要 go 版本 1.11 或更高版本。 go 1.13 默认打开模块。早期版本您必须通过环境变量 go111module=on 显式启用它。

如果您想为特定 go 包固定特定版本,则可以通过 replace directive 来完成。例如,以下 go .mod 配置将 golang.org/x/exp 固定到 v0.0.0-20230713183714-613f0c0eb8a1,因此 go get -u -d ./... 不会将此软件包更新到新版本:

module github.com/myname/mymodule

replace golang.org/x/exp => golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1

require (
  ...
  // This version is updated with go get -u -d ./..., but it is always
  // overridden by the version specified in the replace directive above
  golang.org/x/exp v0.0.0-20231006140011-7918f672742d
  ...
)

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>