ProjectRoot
:GO 项目源码根路径;ProjectName
:GO 项目名称;%GOROOT%
:GO SDK 安装目录环境变量,unix 中为 $GOROOT
;%GOPATH%/bin
1go install github.com/google/gops@latest
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
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
必须写为 API
、Http
必须写为 HTTP
、Id
必须写为 ID
和 Sql
必须写为 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 ./...
1# 在项目根目录执行:
2go run golang.org/x/vuln/cmd/govulncheck@latest ./...
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/
1# mkdir ProjectName & cd ProjectName
2
3go mod init ProjectName
1go mod download
1go mod tidy
1go get github.com/godoes/go-figure
1go get -d -u github.com/godoes/go-figure
1go get -d -u
1go mod vendor
1rem 获取 go 版本
2set gv=99999999999999999999
3for /f "tokens=*" %%i in ('go version') do (
4 set gv=%%i
5)
6set ver=%gv:~13,5%
7:del-right
8if "%ver:~-1%" equ "." set ver=%ver:~0,-1%&&goto del-right
9if "%ver:~-1%" equ " " set ver=%ver:~0,-1%&&goto del-right
10:goon
11rem go 版本不能小于 1.18
12if %ver% leq 1.17 (
13 color 04
14 echo. & echo 请使用 go1.18 或以上版本! & echo.
15 pause & exit
16)
17
18rem TODO more things...
19go version
20pause
将以下代码保存为 GOROOT.bat
,双击运行,输入本地已安装或解压的 go 版本,可以在保持 GOROOT
不变的前提下来动态切换 GO 版本:
1@echo off
2title 修改 GOROOT 链接路径
3
4rem 如果是 setx "GOROOT" "D:\Dev\Go\SDK\go" /m 需要使用管理员权限运行
5setx "GOROOT" "D:\Dev\Go\SDK\go"
6go version
7echo.
8
9set /p ver=请输入 GO 版本(如 1.17.13):
10echo.
11
12echo 开始切换 [go%ver%] 根路径:
13echo.
14
15rem 删除旧链接路径
16rmdir %GOROOT%
17rem 关联新链接路径
18mklink /J "%GOROOT%" "D:\Dev\Go\SDK\versions\go%ver%"
19echo.
20
21go version
22echo.
23
24pause
比如 GOROOT
路径固定为 D:\Dev\Go\SDK\go
,安装的多个 go 版本路径分别为:
运行 GOROOT.bat
输入 1.18.5
即可切换到 go1.18.5
,输入 1.19.1
即可切换到 go1.19.1
:
1成功: 指定的值已得到保存。
2go version go1.17.13 windows/amd64
3
4请输入 GO 版本(如 1.17.13):1.18.5
5
6开始切换 [go1.18.5] 根路径:
7
8为 D:\Dev\Go\SDK\go <<===>> D:\Dev\Go\SDK\versions\go1.18.5 创建的联接
9
10go version go1.18.5 windows/amd64
11
12请按任意键继续. . .
1成功: 指定的值已得到保存。
2go version go1.18.5 windows/amd64
3
4请输入 GO 版本(如 1.17.13):1.19.1
5
6开始切换 [go1.19.1] 根路径:
7
8为 D:\Dev\Go\SDK\go <<===>> D:\Dev\Go\SDK\versions\go1.19.1 创建的联接
9
10go version go1.19.1 windows/amd64
11
12请按任意键继续. . .
上述 GOROOT.bat
还是需要先手动下载安装或解压 GO 后才可以使用,如果有一个可以查看所有可安装的版本、自动下载安装或卸载、查看本地已安装的版本和切换到指定版本的 GO 版本管理工具,那就完美了。
这不,https://github.com/voidint/g 就是这样一个实用的工具:
1go run github.com/voidint/g@latest -h
2
3NAME:
4 g - Golang Version Manager
5
6 USAGE:
7 g.exe command [arguments...]
8
9 VERSION:
10 1.4.0
11
12 AUTHOR:
13 voidint <voidint@126.com>
14
15 COMMANDS:
16 ls List installed versions
17 ls-remote List remote versions available for install
18 use Switch to specified version
19 install Download and install a version
20 uninstall Uninstall a version
21 update Fetch the newest version of g
22 clean Remove files from the package download directory
23 help, h Shows a list of commands or help for one command
24
25 GLOBAL OPTIONS:
26 --help, -h show help (default: false)
27 --version, -v print the version (default: false)
28
29 COPYRIGHT:
30 Copyright (c) 2019-2022, voidint. All rights reserved.
在国内不 KXSW 的情况下,需要设置 G_MIRROR
环境变量为国内 GO 下载镜像地址:
1G_MIRROR=https://golang.google.cn/dl/
如果需要自定义此 GO 版本管理工具的 GO 安装包下载和安装路径,需要设置以下环境变量:
1G_EXPERIMENTAL=true
2G_HOME=D:\Dev\Go\SDK
内容声明 | |
---|---|
标题: GO 语言常用终端命令 | |
链接: https://zixizixi.cn/go-command | 来源: iTanken |
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可,转载请保留此声明。
|