知识分享之Golang——go get 常用命令
背景
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。
知识分享系列目前包含Java、Golang、Linux、Docker等等。
开发环境
- 系统:windows10
- 语言:Golang
- 组件库:gorm
- golang版本:1.17
- 组件官网:https://gorm.io/zh_CN/
- 组件仓库:https://github.com/go-gorm/gorm
- 开源协议: MIT License
内容
以下内容是我对于 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的影响。
本文就先分享到这里,更多内容欢迎持续关注我,我将每天带着大家学习一个小知识,进行每天的积累成长。
本文声明:
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。