子兮子兮 子兮子兮

No can, but will.

目录
GO 语言常用终端命令
/        

GO 语言常用终端命令

环境

  • 操作系统:windows
  • GO 版本:1.19

本文占位符说明

  • ProjectRoot:GO 项目源码根路径;
  • ProjectName:GO 项目名称;
  • %GOROOT%:GO SDK 安装目录环境变量,unix 中为 $GOROOT

安装 GO 程序最新版到 %GOPATH%/bin

1go install github.com/google/gops@latest

直接编译运行某 GO 程序的指定版本命令

1go run github.com/swaggo/swag/cmd/swag@v1.8.1 fmt

查看当前目录下所有的包

1# cd ProjectRoot
2
3go list ./...
展开/收起输出内容
1ProjectName
2ProjectName/assets
3ProjectName/config
4ProjectName/database
5ProjectName/initialization
6ProjectName/middleware

查看 GO 程序文件的编译信息

1# go install github.com/google/gops@latest
2# cd %GOROOT%/bin
3
4go version -m gops.exe
展开/收起输出内容
 1gops.exe: go1.19
 2        path    github.com/google/gops
 3        mod     github.com/google/gops  v0.3.25 h1:Pf6uw+cO6pDhc7HJ71NiG0x8dyQTeQcmg3HQFF39qVw=
 4        dep     github.com/go-ole/go-ole        v1.2.6  h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
 5        dep     github.com/keybase/go-ps        v0.0.0-20190827175125-91aafc93ba19      h1:WjT3fLi9n8YWh/Ih8Q1LHAPsTqGddPcHqscN+PJ3i68=
 6        dep     github.com/shirou/gopsutil/v3   v3.22.4 h1:srAQaiX6jX/cYL6q29aE0m8lOskT9CurZ9N61YR3yoI=
 7        dep     github.com/xlab/treeprint       v1.1.0  h1:G/1DjNkPpfZCFt9CSh6b5/nY4VimlbHF3Rh4obvtzDk=
 8        dep     github.com/yusufpapurcu/wmi     v1.2.2  h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg=
 9        dep     golang.org/x/sys        v0.0.0-20220520151302-bc2c85ada10a      h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k=
10        build   -compiler=gc
11        build   CGO_ENABLED=0
12        build   GOARCH=amd64
13        build   GOOS=windows
14        build   GOAMD64=v1

静态检查

1# cd ProjectRoot
2
3go run honnef.co/go/tools/cmd/staticcheck@latest -f stylish ./...
展开/收起输出内容
1✖ 0 problems (0 errors, 0 warnings, 0 ignored)

另一个静态检查命令

1go run github.com/mgechev/revive@latest -exclude ./vendor/... -formatter stylish ./...

此命令默认行为对命名检查比较严格,比如 Api 必须写为 APIHttp 必须写为 HTTPId 必须写为 IDSql 必须写为 SQL 等等,
可以在配置文件中配置 [rule.var-naming] 白名单以便排除相关命名检查,如:

1# revive.toml
2
3[rule.var-naming]
4  arguments = [["API", "SQL"], ["VM"]]

配置项 [rule.var-naming] 的参数类型为 [2][]string,第一个子切片为白名单,第二个子切片为黑名单。使用示例:

1go run github.com/mgechev/revive@latest -config ./revive.toml -exclude ./vendor/... -formatter stylish ./...

GO 文档服务

1# cd ProjectRoot
2
3go run golang.org/x/tools/cmd/godoc@latest -http=:6060 -index
4
5# start http://127.0.0.1:6060/pkg/

GO 模块

初始化 GO 模块

1# mkdir ProjectName & cd ProjectName
2
3go mod init ProjectName

下载 GO 模块依赖

1go mod download

整理 GO 模块依赖

1go mod tidy

添加 GO 模块依赖

1go get github.com/godoes/go-figure

更新指定 GO 模块依赖

1go get -d -u github.com/godoes/go-figure

更新全部 GO 模块依赖

1go get -d -u

导入模块依赖到 vendor 目录

1go mod vendor

内容声明
标题: GO 语言常用终端命令
链接: https://zixizixi.cn/go-command 来源: iTanken
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可,转载请保留此声明


我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=wh4u6zpyhe1d