zl程序教程

您现在的位置是:首页 >  其他

当前栏目

知识分享之Golang——go get 常用命令

2023-03-20 15:31:04 时间

知识分享之Golang——go get 常用命令

背景

知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。

知识分享系列目前包含Java、Golang、Linux、Docker等等。

开发环境

内容

以下内容是我对于 go help get官方命令解释的相关翻译,并补充了一些日常我们常用的命令,欢迎大家在评论区进行补充。 语法命令:go get 包地址

注:go get通常搭配mod包管理模块进行使用,当我们在开发时想要使用其他第三方包时,在mod中增加了包的引用可能不能有效的加载到包,这时我们就需要使用go get命令先把包拉取到本地,在进行使用,通常拉取到本地后,配合go mod tidy和go mod vendor就能有效的加载到我们程序中使用的包,同时会更新掉go.mod配置文件。

帮助手册:

usage: go get [-d] [-t] [-u] [-v] [build flags] [packages]

Get 将其命令行参数解析为特定模块版本的包,然后将go.mod需要的这些版本包,下载源代码到模块缓存中,然后进行构建和安装命名包。

为包添加依赖项或将其升级到最新版本:

        go get example.com/pkg

将一个包升级或降级到特定版本:

        go get example.com/pkg@v1.2.3

删除对某个模块的依赖,并将需要它的模块降级:

        go get example.com/mod@none

详情请参见 https://golang.org/ref/mod#go-get

go install'命令可以用来构建和安装包。当指定一个版本时,'go install'将在模块感知模式下运行并忽略当前目录下的go.mod文件。例如:

        go install example.com/pkg@v1.2.3
        go install example.com/pkg@latest

详情请参见 'go help install' 或 https://golang.org/ref/mod#go-install for details.

除了build中的标记提示(在“go help build”中列出)之外,“go get”还接受以下命令:

-t  指示考虑构建在命令行上指定的包测试所需的模块。

-u 指示get更新提供在命令行中命名的包依赖的模块,以便在可用时使用更新的次要版本或补丁版本。

-u=patch  (不是-u patch)也指示要更新依赖项,但会将默认值更改为选择补丁版本。

-t -u 当-t和-u标志同时使用时,get也会更新测试依赖项。

-d 指示get不要构建或安装包。得到只会更新去。Mod并下载构建包所需的源代码。

不建议使用get构建和安装包。在未来的版本中,-d标志将默认启用,'go get'将仅用于调整当前模块的依赖关系。要使用来自当前模块的依赖项来安装一个包,请使用'go install'。要安装一个忽略当前模块的包,使用带有@version后缀的'go install'
每个参数后面都有@latest。

有关模块的更多信息,请参见 https://golang.org/ref/mod 。

关于指定包的更多信息,请参见“go help packages”。

本文描述了get使用模块管理源代码和依赖项的行为。如果以GOPATH模式运行go命令,则get的标志和效果的细节会发生变化,'go help get'也会发生变化。
参见“go help gopath-get”。

参见: go build, go install, go clean, go mod.

以上就是go get的使用方法说明,这里我们也发现官方说明中明确提到了要使用go install进行代替go get的使用,后续版本-d 标志将默认启用,因此我们在日常使用时还是遵循官方的标准来吧,便于我们后续更新go基础版本时不会受到 go get的影响。

本文就先分享到这里,更多内容欢迎持续关注我,我将每天带着大家学习一个小知识,进行每天的积累成长。