go.mod上的严格版本

go.mod上的严格版本,go,go-modules,Go,Go Modules,我在go.mod文件中的依赖项总是被更新,我不知道为什么。我必须这样做 module mymodule go 1.14 require ( github.com/golang/protobuf v1.3.5 github.com/grpc-ecosystem/grpc-gateway v1.14.6 github.com/jinzhu/gorm v1.9.15 github.com/kelseyhightower/envconfig v1.4.0 gi

我在go.mod文件中的依赖项总是被更新,我不知道为什么。我必须这样做

module mymodule

go 1.14

require (
    github.com/golang/protobuf v1.3.5
    github.com/grpc-ecosystem/grpc-gateway v1.14.6
    github.com/jinzhu/gorm v1.9.15
    github.com/kelseyhightower/envconfig v1.4.0
    github.com/ruang-guru/rg-genproto v1.0.18
    gitlab.com/ruangguru/source/shared-lib/go v1.0.28
    google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884
    google.golang.org/grpc v1.29.1
)
当我运行
go-get
时,它总是变为这个。参见1.3.5至1.4.1中的
github.com/golang/protobuf

require (
    github.com/golang/protobuf v1.4.1
    github.com/gomodule/redigo v2.0.0+incompatible
    github.com/grpc-ecosystem/grpc-gateway v1.14.6
    github.com/jinzhu/gorm v1.9.15
    github.com/kelseyhightower/envconfig v1.4.0
    github.com/ruang-guru/rg-genproto v1.0.18
    github.com/stretchr/testify v1.5.1
    gitlab.com/ruangguru/source/shared-lib/go v1.0.28
    google.golang.org/genproto v0.0.0-20200808173500-a06252235341
    google.golang.org/grpc v1.29.1
    google.golang.org/protobuf v1.25.0 // indirect
)

所以我的问题是,当我们运行
go-get
时,如何在go.mod中设置特定的版本而不改变它?如果这个问题非常基本,我很抱歉,因为我对go.mod这个东西还是新手:(

如果您的git软件包有
标签
版本,您可以使用以下命令:

go get -d -v github.com/golang/protobuf@v1.3.5
  • -d
    表示“仅下载”,如果要直接安装,请省略此标志和此行下面的build命令
  • -v
    表示“冗长”

如果您的git软件包具有
标签
版本,则可以使用以下命令:

go get -d -v github.com/golang/protobuf@v1.3.5
  • -d
    表示“仅下载”,如果要直接安装,请省略此标志和此行下面的build命令
  • -v
    表示“冗长”

Full
go-get
示例。为什么要使用
go-get
?只需
go-test
go-build
就足以从go获取固定的包。modi已经分享了@kozmoI上面的完整
go-get
结果,我认为我需要运行
go-get
,才能在modcache中获取包?@shmsrDon'do一个简单的
go-get
。版本被固定在go.mod中,并由go-get.Full
go-get
示例进行更新。为什么要使用
go-get
?只需
go-test
go-build
就足以从go.modi获取固定的包。modi已经分享了上面的完整
go-get
结果@kozmoI认为需要运行
go-get
才能在modcache中获取软件包吗?@shmsrDon不需要执行简单的
go-get
。版本固定在go.mod中并由go-get更新。