知识分享之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 国际许可协议 进行许可。

目录
相关文章
|
14天前
|
存储 Cloud Native Shell
go库介绍:Golang中的Viper库
Viper 是 Golang 中的一个强大配置管理库,支持环境变量、命令行参数、远程配置等多种配置来源。本文详细介绍了 Viper 的核心特点、应用场景及使用方法,并通过示例展示了其强大功能。无论是简单的 CLI 工具还是复杂的分布式系统,Viper 都能提供优雅的配置管理方案。
|
14天前
|
Unix Linux Go
go进阶编程:Golang中的文件与文件夹操作指南
本文详细介绍了Golang中文件与文件夹的基本操作,包括读取、写入、创建、删除和遍历等。通过示例代码展示了如何使用`os`和`io/ioutil`包进行文件操作,并强调了错误处理、权限控制和路径问题的重要性。适合初学者和有经验的开发者参考。
|
2月前
|
JSON Go API
使用Go语言和Gin框架构建RESTful API:GET与POST请求示例
使用Go语言和Gin框架构建RESTful API:GET与POST请求示例
|
2月前
|
Go
golang语言之go常用命令
这篇文章列出了常用的Go语言命令,如`go run`、`go install`、`go build`、`go help`、`go get`、`go mod`、`go test`、`go tool`、`go vet`、`go fmt`、`go doc`、`go version`和`go env`,以及它们的基本用法和功能。
51 6
|
2月前
|
存储 Go
Golang语言基于go module方式管理包(package)
这篇文章详细介绍了Golang语言中基于go module方式管理包(package)的方法,包括Go Modules的发展历史、go module的介绍、常用命令和操作步骤,并通过代码示例展示了如何初始化项目、引入第三方包、组织代码结构以及运行测试。
47 3
|
3月前
|
Go 开发者
|
3月前
|
Go 开发者
|
3月前
|
监控 Serverless Go
Golang 开发函数计算问题之Go 语言中切片扩容时需要拷贝原数组中的数据如何解决
Golang 开发函数计算问题之Go 语言中切片扩容时需要拷贝原数组中的数据如何解决
|
2月前
|
Go
Golang语言之管道channel快速入门篇
这篇文章是关于Go语言中管道(channel)的快速入门教程,涵盖了管道的基本使用、有缓冲和无缓冲管道的区别、管道的关闭、遍历、协程和管道的协同工作、单向通道的使用以及select多路复用的详细案例和解释。
111 4
Golang语言之管道channel快速入门篇
|
2月前
|
Go
Golang语言文件操作快速入门篇
这篇文章是关于Go语言文件操作快速入门的教程,涵盖了文件的读取、写入、复制操作以及使用标准库中的ioutil、bufio、os等包进行文件操作的详细案例。
66 4
Golang语言文件操作快速入门篇