文章目录
- 1.简介
- 2.格式
- 3.命令详解
- go help
- go version
- go env
- go get
- 简介
- 格式
- 示例
- go mod
- go test
- 参考文献
1.简介
go 是管理 Go 代码的工具,不仅仅用于编译 Go 代码。
2.格式
go COMMAND [ARGS]
子命令 COMMAND :
help:显示指定命令的详细帮助信息
build:编译包与依赖
clean:移除当前源码包和关联源码包里面编译生成的文件
doc:展示包与符号的文档说明
env:打印Go的环境信息
bug:打开默认的浏览器让你汇报一个bug
fix:针对你提供的代码,自动将旧的API替换成新的API
fmt:格式化Go代码
generate:用于在编译前自动化生成某类代码
get:下载并安装指定的包及其依赖
install:编译包与依赖,可执行文件放到$GOPATH/bin,依赖包放到$GOPATH/pkg
list:查看当前安装的全部 package
mod:模块维护。管理工程依赖的第三方库
run:编译并运行。运行结束会删除编译生成的可执行文件
test:后缀为_test.go的文件在build的时候会被忽略,go test用于编译它们并生成测试程序并运行
tool:运行指定的Go工具
version:打印Go版本信息
vet: 代码静态检查,报告代码中的语法错误
3.命令详解
go help
go help 用于查看某个命令或主题的帮助信息。
命令格式:
go help CMD
go help TOPIC
示例:
# 查看 go mod 命令用法
go help mod
Go mod provides access to operations on modules.
Note that support for modules is built into all the go commands,
not just 'go mod'. For example, day-to-day adding, removing, upgrading,
and downgrading of dependencies should be done using 'go get'.
See 'go help modules' for an overview of module functionality
...
# 查看测试函数说明
go help testfunc
The 'go test' command expects to find test, benchmark, and example functions
in the "*_test.go" files corresponding to the package under test.
...
go version
简介:
查看 Go 版本信息。
格式:
go version [-m] [-v] [file ...]
示例:
# 查看 Go 版本
go version
go version go1.10.2 linux/amd64
go env
简介:
用于查看和设置 Go 环境变量。
格式:
go env [-json] [-u] [-w] [var ...]
示例:
# 查看 Go 所有环境变量
go env
'GOARCH="amd64"
GOBIN="/data/home/go_proj/going_proj/bin"
GOCACHE="/home/dablelv/.cache/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/dablelv:/data/home/go_proj/going_proj"
GORACE=""
GOROOT="/usr/local/go"
...
# 以 JSON 格式显示 Go 环境变量
go env -json
# 查看指定环境变量
go env NAME
# 删除环境变量
go env -u NAME
# 设置环境变量
go env -w NAME=VALUE
go get
简介
将依赖项添加到当前模块并安装它们。
go get 干了三件事:
- 一是更新 go.mod 文件将指定包及其版本加入其中。
- 二是下载包源码至模块缓存(
GOPATH/pkg/mod
)。 - 三是安装包,生成二进制程序至
GOPATH/bin
(从 Go 1.17 版本开始,为了更加符合其语义,该功能被废弃,改用go install
)。
注意: 如果包中不包含可执行文件,则不会执行第三步,即 go get 操作成功后 GOPATH/bin 目录下不会有任何编译好的二进制文件。
格式
go get [-d] [-t] [-u] [-v] [-insecure] [build flags] [packages]
选项:
-d 只更新 go.mod 和下载,不安装。
-t 同时下载需要为运行测试所需要的包。
-u 更新依赖的模块至最新的次版本号(minor)或修订号(patch),如果有更新的话。
-u=patch 更新包至最新的修订号(patch),如果有更新的话。注意不是 -u patch。
-v 显示操作流程的日志及信息,方便检查错误。
-insecure 允许使用不安全的 HTTP 方式进行下载操作。
示例
(1)不加选项与参数执行 go get。
为当前目录的 Go 包(package)或模块(module)下载所依赖的包,并更新 go.mod 和 go.sum 文件(不存在则创建)。
go get
(2)添加对包的依赖或将其升级到最新版本。
go get example.com/pkg
(3)将包升级或降级到指定版本
go get example.com/pkg@v1.2.3
有关模块的详细信息,请参阅 https://golang.org/ref/mod。
有关包的详细信息,请参阅 go help packages。
go mod
go test
参考文献
The Go Programming Language.Command go语义化版本 2.0.0Deprecation of ‘go get’ for installing executablesGo 测试,go test 工具的具体指令 flag