知识分享之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月前
|
测试技术 Go 开发者
go-carbon v2.3.8 发布,轻量级、语义化、对开发者友好的 golang 时间处理库
carbon 是一个轻量级、语义化、对开发者友好的 golang 时间处理库,支持链式调用。
27 0
|
3月前
|
测试技术 Go 开发者
go-carbon v2.3.7 发布,轻量级、语义化、对开发者友好的 golang 时间处理库
carbon 是一个轻量级、语义化、对开发者友好的 golang 时间处理库,支持链式调用。
18 2
|
1月前
|
SQL 前端开发 Go
编程笔记 GOLANG基础 001 为什么要学习Go语言
编程笔记 GOLANG基础 001 为什么要学习Go语言
|
3月前
|
物联网 Go 网络性能优化
使用Go语言(Golang)可以实现MQTT协议的点对点(P2P)消息发送。MQTT协议本身支持多种消息收发模式
使用Go语言(Golang)可以实现MQTT协议的点对点(P2P)消息发送。MQTT协议本身支持多种消息收发模式【1月更文挑战第21天】【1月更文挑战第104篇】
91 1
|
1月前
|
Go 开发工具
编程笔记 GOLANG基础 004 GOLANG常用命令及VSCODE快捷键
编程笔记 GOLANG基础 004 GOLANG常用命令及VSCODE快捷键
|
1月前
|
Go 开发工具 git
编程笔记 GOLANG基础 003 Go语言开发环境搭建
编程笔记 GOLANG基础 003 Go语言开发环境搭建
|
1月前
|
存储 Java Go
编程笔记 GOLANG基础 002 Go语言简介
编程笔记 GOLANG基础 002 Go语言简介
|
3月前
|
NoSQL Go API
Golang使用第三方库Go-Redis操作redis
Golang使用第三方库Go-Redis操作redis
35 0
|
3月前
|
Go 索引
Golang随笔之《Go专家编程》查漏补缺
Golang随笔之《Go专家编程》查漏补缺
39 5
|
3月前
|
安全 应用服务中间件 Linux
百度搜索:蓝易云【CentOS7使用Nginx、Supervisor部署Go/Golang服务教程】
这些是在CentOS 7 x64上使用Nginx和Supervisor部署Go/Golang服务的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
61 0