
GB构建工具命令实战指南build、test、list等10大核心命令用法详解【免费下载链接】gbgb, the project based build tool for Go项目地址: https://gitcode.com/gh_mirrors/gb/gbgb是一款面向 Go 语言的项目式构建工具build tool通过gb build、gb test、gb list等 10 大核心命令帮助你在无需配置 GOPATH 环境变量的情况下完成编译、测试、文档查看与依赖管理。本指南面向新手带你逐一掌握每条命令的实际用法 ⚡️什么是 GB30 秒了解项目式构建gb的核心理念是项目Project一个包含src/子目录的文件夹就是一个 gb 项目gb 会自动从当前目录向上查找src/来定位项目根目录无需设置任何环境变量详见 README.md。一个最小项目结构如下myproject/ ├── src/ │ └── github.com/ │ └── example/ │ └── hello/ │ └── hello.go └── vendor/ # 依赖可选进入项目任意子目录gb 都能识别项目根切换项目只需切换目录非常省心。快速安装 GB 构建工具安装只需一条命令gb 本身也是用 Go 写的见 cmd/gb/main.gogo get github.com/constabulary/gb/...安装完成后运行gb help查看全部命令列表帮助文本由 cmd/gb/help.go 中的usageTemplate动态生成支持gb help command查看单条命令详情。核心命令 1gb build 编译打包gb build是最高频命令用于编译指定包及其全部依赖实现见 cmd/gb/build.go# 编译单个包 gb build github.com/example/hello # 编译项目内所有包all 是内置别名等价于 ... 通配 gb build all常用构建参数定义于 cmd/gb/build.go 的addBuildFlags参数作用-f忽略缓存强制重新编译-F跳过包缓存-P并行任务数默认为 CPU 核心数-r执行 release 构建加 release 标签-race启用数据竞争检测限 amd64 平台-ldflags/-gcflags传递给链接器 / 编译器的参数-tags添加构建标签-dotfile输出构建步骤的 dot 图文件便于分析构建依赖 小技巧编译产物统一输出到bin/编译缓存存放于pkg/用-dotfile生成构建 DAG 后再用图形化工具查看是排查构建顺序问题的利器dot 输出逻辑见 cmd/gb/dot.go。核心命令 2gb test 自动化测试gb test会重新编译每个包及其*_test.go文件并执行测试实现见 cmd/gb/test.go# 测试指定包-v 显示子进程详细输出 gb test -v github.com/example/hello # 只编译不执行测试二进制快速验证可编译性 gb test -n all特色参数参数作用-v输出测试子进程的详细结果-n仅编译不执行测试二进制-cover/-covermode/-coverpkg启用覆盖率分析测试包以稳定字母序执行与go test行为一致底层测试解析器见 test/resolve.go。核心命令 3gb list 列出项目包gb list列出项目导入的所有包默认输出 import path实现见 cmd/gb/list.gogb list github.com/constabulary/...三个实用参数-f {{.GoFiles}}使用模板自定义输出字段-s从标准输入读取模板-json以 JSON 结构输出注意gb.Package结构不稳定见 cmd/gb/list.go 中的PackageView核心命令 4gb info 查看项目信息gb info打印 gb 环境信息并在项目结构合法时返回 0实现见 cmd/gb/info.go变量含义GB_PROJECT_DIR项目根目录GB_SRC_PATH项目源码目录列表GB_PKG_DIR包缓存路径GB_BIN_SUFFIX输出二进制后缀GB_GOROOT构建 gb 时所用的 Go 版本 GOROOT脚本中可用gb info GB_PROJECT_DIR单独获取某个变量方便 CI 集成。核心命令 5gb env 打印项目环境变量gb env与gb info输出同源命令注册见 cmd/gb/env.go可打印全部或指定名称的项目环境变量常用于编写跨平台的构建脚本时确认 gb 的工作上下文。核心命令 6gb doc 查看包文档gb doc显示包或符号的文档实现见 cmd/gb/doc.go# 查看当前目录包文档默认参数为 . gb doc # 查看指定符号 gb doc github.com/example/hello MyFunc该命令会自动将GOPATH设置为项目目录:项目目录/vendor后调用godoc因此无需手动配置即可查到 vendored 依赖的文档。核心命令 7gb generate 代码生成gb generate执行源文件中//go:generate指令描述的外部命令用于生成或更新 Go 源文件实现见 cmd/gb/generate.go# 按正则筛选要执行的指令 gb generate -run mygen all它同样会自动注入项目vendor路径到GOPATH与go generate行为保持一致。核心命令 8gb vendor 依赖管理插件gb 支持 git 风格插件机制任何$PATH中以gb-开头的可执行文件都会成为对应子命令插件查找逻辑见 cmd/gb/plugin.go。gb-vendor插件源码在 cmd/gb-vendor/就是典型代表# 获取依赖到 vendor/ gb vendor fetch -tag v1.0.0 github.com/constabulary/gb # 更新到 master 分支最新 gb vendor update -all # 查看 / 恢复 / 删除 / 清理依赖 gb vendor list gb vendor restore gb vendor delete gb vendor purge注意使用-tag或-revision获取的依赖是 headless 的无法直接 update需先 delete 再 fetch限制说明见 cmd/gb-vendor/update.go。核心命令 9gb depset 依赖集合分析gb depset实现见 cmd/gb/depset.go汇总 GOROOT、项目src/与 vendor 依赖的导入路径集合是分析依赖来源、排查包解析冲突的进阶工具适合在依赖出现二义性时定位问题根源。核心命令 10gb help 与全局参数gb help [command]查看任意命令的详细用法不带参数则打印全部命令清单模板见 cmd/gb/help.go。此外所有命令共享两个全局参数参数作用-R指定项目根搜索起点默认当前目录见 cmd/gb/main.go-d开启调试输出实战速查表场景推荐命令日常编译gb build all强制重新编译gb build -f all跑测试并看细节gb test -v all确认包能否编译gb test -n all摸清项目结构gb list allCI 中取项目路径gb info GB_PROJECT_DIR升级依赖gb vendor update -all小结gb 用项目即一切的极简设计取代了 GOPATH 时代的环境配置负担build编译、test测试、list查包、info/env查看环境、doc/generate辅助开发再配合gb vendor插件管理依赖10 大核心命令覆盖了 Go 项目从开发到交付的完整链路。从gb build all开始动手你会很快体会项目式构建的便利 【免费下载链接】gbgb, the project based build tool for Go项目地址: https://gitcode.com/gh_mirrors/gb/gb创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考