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

简介: 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。知识分享系列目前包含Java、Golang、Linux、Docker等等。

知识分享之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的影响。

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

本文声明:

5330898-d1c72b6c90e378f3.png
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

目录
相关文章
|
2月前
|
Java 编译器 Go
【Golang】(1)Go的运行流程步骤与包的概念
初次上手Go语言!先来了解它的运行流程吧! 在Go中对包的概念又有怎样不同的见解呢?
162 4
|
2月前
|
Java 编译器 Go
【Golang】(5)Go基础的进阶知识!带你认识迭代器与类型以及声明并使用接口与泛型!
好烦好烦好烦!你是否还在为弄不懂Go中的泛型和接口而烦恼?是否还在苦恼思考迭代器的运行方式和意义?本篇文章将带你了解Go的接口与泛型,还有迭代器的使用,附送类型断言的解释
186 3
|
2月前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
206 1
|
5月前
|
人工智能 测试技术 持续交付
Golang深入浅出之-Go语言中的持续集成与持续部署(CI/CD)
持续集成与持续部署(CI/CD)是现代软件开发的关键实践,尤其适用于Go语言项目。本文探讨了Go项目中常见的CI/CD问题,如测试覆盖不足、版本不一致和构建时间过长,并提供解决方案及GitHub Actions示例代码,帮助开发者优化流程,提升交付效率和质量。
178 5
|
6月前
|
测试技术 程序员 Go
Go语言测试简明指南:深度解读go test命令
总的来说,go test是 Go 语言中一个强而有力的工具,每个 Go 程序员都应该掌握并把它融入到日常的开发和调试过程中。就像是一个眼镜过滤出的太阳,让我们在宽阔的代码海洋中游泳,而不是淹没。用好它,让我们的代码更健壮,让我们的生产力更强效。
536 23
|
11月前
|
监控 编译器 Go
1 行命令引发的Go应用崩溃
这篇文章分析了Go编译时插桩工具导致go build -race竞态检测产生崩溃的原因。
787 179
|
9月前
|
Go 开发者
go-carbon v2.6.0 重大版本更新,轻量级、语义化、对开发者友好的 golang 时间处理库
carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,提供了对时间穿越、时间差值、时间极值、时间判断、星座、星座、农历、儒略日 / 简化儒略日、波斯历 / 伊朗历的支持
208 3
|
9月前
|
监控 前端开发 编译器
1 行命令引发的 Go 应用崩溃
1 行命令引发的 Go 应用崩溃
156 0
1 行命令引发的 Go 应用崩溃
|
JSON Go 开发者
go-carbon v2.5.0 发布,轻量级、语义化、对开发者友好的 golang 时间处理库
carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,提供了对时间穿越、时间差值、时间极值、时间判断、星座、星座、农历、儒略日 / 简化儒略日、波斯历 / 伊朗历的支持。
273 4
|
Java Linux Go
【GoLang】GO命令中go get拉取库卡住、慢的解决方法
【GoLang】GO命令中go get拉取库卡住、慢的解决方法
1716 0
【GoLang】GO命令中go get拉取库卡住、慢的解决方法

推荐镜像

更多