ProjectRoot
:GO 项目源码根路径;ProjectName
:GO 项目名称;%GOROOT%
:GO SDK 安装目录环境变量,unix 中为 $GOROOT
;%GOPATH%/bin
go install github.com/google/gops@latest
go run github.com/swaggo/swag/cmd/swag@v1.8.1 fmt
# cd ProjectRoot
go list ./...
ProjectName
ProjectName/assets
ProjectName/config
ProjectName/database
ProjectName/initialization
ProjectName/middleware
# go install github.com/google/gops@latest
# cd %GOROOT%/bin
go version -m gops.exe
gops.exe: go1.19
path github.com/google/gops
mod github.com/google/gops v0.3.25 h1:Pf6uw+cO6pDhc7HJ71NiG0x8dyQTeQcmg3HQFF39qVw=
dep github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
dep github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 h1:WjT3fLi9n8YWh/Ih8Q1LHAPsTqGddPcHqscN+PJ3i68=
dep github.com/shirou/gopsutil/v3 v3.22.4 h1:srAQaiX6jX/cYL6q29aE0m8lOskT9CurZ9N61YR3yoI=
dep github.com/xlab/treeprint v1.1.0 h1:G/1DjNkPpfZCFt9CSh6b5/nY4VimlbHF3Rh4obvtzDk=
dep github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg=
dep golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k=
build -compiler=gc
build CGO_ENABLED=0
build GOARCH=amd64
build GOOS=windows
build GOAMD64=v1
# cd ProjectRoot
go run honnef.co/go/tools/cmd/staticcheck@latest -f stylish ./...
✖ 0 problems (0 errors, 0 warnings, 0 ignored)
go run github.com/mgechev/revive@latest -exclude ./vendor/... -formatter stylish ./...
此命令默认行为对命名检查比较严格,比如 Api
必须写为 API
、Http
必须写为 HTTP
、Id
必须写为 ID
和 Sql
必须写为 SQL
等等,
可以在配置文件中配置 [rule.var-naming]
白名单以便排除相关命名检查,如:
# revive.toml
[rule.var-naming]
arguments = [["API", "SQL"], ["VM"]]
配置项 [rule.var-naming]
的参数类型为 [2][]string
,第一个子切片为白名单,第二个子切片为黑名单。使用示例:
go run github.com/mgechev/revive@latest -config ./revive.toml -exclude ./vendor/... -formatter stylish ./...
# 在项目根目录执行:
go run golang.org/x/vuln/cmd/govulncheck@latest ./...
# cd ProjectRoot
go run golang.org/x/tools/cmd/godoc@latest -http=:6060 -index
# start http://127.0.0.1:6060/pkg/
# mkdir ProjectName & cd ProjectName
go mod init ProjectName
go mod download
go mod tidy
go get github.com/godoes/go-figure
go get -d -u github.com/godoes/go-figure
go get -d -u
go mod vendor
rem 获取 go 版本
set gv=99999999999999999999
for /f "tokens=*" %%i in ('go version') do (
set gv=%%i
)
set ver=%gv:~13,5%
:del-right
if "%ver:~-1%" equ "." set ver=%ver:~0,-1%&&goto del-right
if "%ver:~-1%" equ " " set ver=%ver:~0,-1%&&goto del-right
:goon
rem go 版本不能小于 1.18
if %ver% leq 1.17 (
color 04
echo. & echo 请使用 go1.18 或以上版本! & echo.
pause & exit
)
rem TODO more things...
go version
pause
将以下代码保存为 GOROOT.bat
,双击运行,输入本地已安装或解压的 go 版本,可以在保持 GOROOT
不变的前提下来动态切换 GO 版本:
@echo off
title 修改 GOROOT 链接路径
rem 如果是 setx "GOROOT" "D:\Dev\Go\SDK\go" /m 需要使用管理员权限运行
setx "GOROOT" "D:\Dev\Go\SDK\go"
go version
echo.
set /p ver=请输入 GO 版本(如 1.17.13):
echo.
echo 开始切换 [go%ver%] 根路径:
echo.
rem 删除旧链接路径
rmdir %GOROOT%
rem 关联新链接路径
mklink /J "%GOROOT%" "D:\Dev\Go\SDK\versions\go%ver%"
echo.
go version
echo.
pause
比如 GOROOT
路径固定为 D:\Dev\Go\SDK\go
,安装的多个 go 版本路径分别为:
运行 GOROOT.bat
输入 1.18.5
即可切换到 go1.18.5
,输入 1.19.1
即可切换到 go1.19.1
:
成功: 指定的值已得到保存。
go version go1.17.13 windows/amd64
请输入 GO 版本(如 1.17.13):1.18.5
开始切换 [go1.18.5] 根路径:
为 D:\Dev\Go\SDK\go <<===>> D:\Dev\Go\SDK\versions\go1.18.5 创建的联接
go version go1.18.5 windows/amd64
请按任意键继续. . .
成功: 指定的值已得到保存。
go version go1.18.5 windows/amd64
请输入 GO 版本(如 1.17.13):1.19.1
开始切换 [go1.19.1] 根路径:
为 D:\Dev\Go\SDK\go <<===>> D:\Dev\Go\SDK\versions\go1.19.1 创建的联接
go version go1.19.1 windows/amd64
请按任意键继续. . .
上述 GOROOT.bat
还是需要先手动下载安装或解压 GO 后才可以使用,如果有一个可以查看所有可安装的版本、自动下载安装或卸载、查看本地已安装的版本和切换到指定版本的 GO 版本管理工具,那就完美了。
这不,https://github.com/voidint/g 就是这样一个实用的工具:
go run github.com/voidint/g@latest -h
NAME:
g - Golang Version Manager
USAGE:
g.exe command [arguments...]
VERSION:
1.4.0
AUTHOR:
voidint <voidint@126.com>
COMMANDS:
ls List installed versions
ls-remote List remote versions available for install
use Switch to specified version
install Download and install a version
uninstall Uninstall a version
update Fetch the newest version of g
clean Remove files from the package download directory
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help (default: false)
--version, -v print the version (default: false)
COPYRIGHT:
Copyright (c) 2019-2022, voidint. All rights reserved.
在国内不 KXSW 的情况下,需要设置 G_MIRROR
环境变量为国内 GO 下载镜像地址:
G_MIRROR=https://golang.google.cn/dl/
如果需要自定义此 GO 版本管理工具的 GO 安装包下载和安装路径,需要设置以下环境变量:
G_EXPERIMENTAL=true
G_HOME=D:\Dev\Go\SDK
内容声明 | |
---|---|
标题: GO 语言常用终端命令 | |
链接: https://zixizixi.cn/go-command | 来源: iTanken |
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可,转载请保留此声明。
|