go get 命令详解

2024-04-24 08:19:38 浏览数 (1)

1.简介

将依赖项添加到当前模块并安装它们。

go get 干了三件事:

  • 一是更新 go.mod 文件将指定包及其版本加入其中。
  • 二是下载包源码至模块缓存(GOPATH/pkg/mod)。
  • 三是安装包,生成二进制程序至GOPATH/bin(从 Go 1.17 版本开始,为了更加符合其语义,该功能被废弃,改用go install)。

注意: 如果包中不包含可执行文件,则不会执行第三步,即 go get 操作成功后 GOPATH/bin 目录下不会有任何编译好的二进制文件。

2.格式

代码语言:javascript复制
go get [-d] [-t] [-u] [-v] [-insecure] [build flags] [packages]

3.选项

代码语言:javascript复制
-d 只更新 go.mod 和下载,不安装。
-t 同时下载需要为运行测试所需要的包。
-u 更新依赖的模块至最新的次版本号(minor)或修订号(patch),如果有更新的话。
-u=patch 更新包至最新的修订号(patch),如果有更新的话。注意不是 -u patch。
-v 显示操作流程的日志及信息,方便检查错误。
-insecure 允许使用不安全的 HTTP 方式进行下载操作。

4.示例

(1)不加选项与参数执行 go get。

为当前目录的 Go 包(package)或模块(module)下载所依赖的包,并更新 go.mod 和 go.sum 文件(不存在则创建)。

代码语言:javascript复制
go get

(2)添加对包的依赖或将其升级到最新版本。

代码语言:javascript复制
go get example.com/pkg

(3)将包升级或降级到指定版本

代码语言:javascript复制
go get example.com/pkg@v1.2.3

有关模块的详细信息,请参阅 https://golang.org/ref/mod。

有关包的详细信息,请参阅 go help packages。

参考文献

The Go Programming Language.Command go 语义化版本 2.0.0 Deprecation of ‘go get’ for installing executables

0 人点赞