查找模块的版本

Ely*_*avi 7 go gomock go-modules

我们正在使用 Go 模块。我想在 CLI 中获取模块的特定版本。是否可以?

如果你好奇,原因是我想添加以下generate命令:

//go:generate go run github.com/golang/mock/mockgen -source="$GOPATH/pkg/mod/mymodules.com/mymodule@${VERSION}/module.go" -destination=module_mock.go
Run Code Online (Sandbox Code Playgroud)

所以我需要以某种方式获得版本

Zub*_*san 20

迟到但值得一提的是,如果您想检查特定模块的所有可用版本:

go list -m -versions <module_name>

喜欢:

go list -m -versions github.com/user/module-name


p9s*_*9sh 11

基础知识:

go list -m all — 查看将在构建中用于所有直接和间接依赖项的最终版本

go list -u -m all — 查看所有直接和间接依赖项的可用次要和补丁升级

示例:

要获取特定模块的版本,让我们说 golang.org/x/text

go list -m all | grep golang.org/x/text | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

或者

go list -u -m all | grep golang.org/x/text | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

所以,一般的方法:

go list -u -m all | grep <module-name> | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

  • 您可以省略 grep 和 awk,如下所示:`go list -m -f '{{ .Version }}' moduleImport` (4认同)