GoFrame 框架提供了功能强大的 gf 命令行开发辅助工具,是框架发展的一个重要组成部分,工具地址:
工具安装请参考仓库页面。工具安装成功后,可以通过 gf 或者 gf -h 查看所有支持的命令。复杂的命令可以通过 gf COMMAND -h 查看更详细的使用帮助信息,例如: gf gen -h。
工具职责
- 简化工程开发,提高开发效率
- 支持框架工程设计规范准确落地
注意事项
- 部分命令需要您先安装好
Golang基础的开发环境,环境安装具体请参考 环境安装 章节。 - 最新的
CLI工具版本会随着最新的框架版本走。
配置支持
工具的所有命令均同时支持命令行及配置文件配置参数,以提高易用性。当给定命令行参数时优先读取命令行参数,如果命令行参数不存在时,自动读取配置文件中对应的参数名称。
配置文件路径优先查找当前目录下的 hack 目录( hack/config.yaml),其次按照框架默认的配置路径检索配置文件。框架默认的配置文件检索路径请参考章节: 配置管理-文件配置
配置文件的格式示例:
# GoFrame CLI tool configuration.
gfcli:
gen:
dao:
- link: "mysql:root:12345678@tcp(127.0.0.1:3306)/test"
tables: "user"
removePrefix: "gf_"
descriptionTag: true
noModelComment: true
docker:
build: "-a amd64 -s linux -p temp"
tagPrefixes:
- ccr.ccs.tencentyun.com/xxx
- hkccr.ccs.tencentyun.com/xxx
- sgccr.ccs.tencentyun.com/xxx
注意以上配置示例仅供参考,具体配置项请参考具体命令帮助。
工具调试
当在工具的使用中遇到问题时,可以尝试打开工具的调试模式获得更详细的工具执行日志信息,打开工具调试模式可以通过 debug 命令行选项开启,例如:
gf build main.go --debug
由于 gf 工具也是使用 GoFrame 框架开发,因此调试信息的开启也是同框架方式一致,更详细的介绍请参考框架介绍文档: 调试模式
命令总览
当前帮助文档以 gf cli v2.0.0 版本为例进行简单的介绍,详细的介绍信息请查看命令行帮助信息。本章内容信息可能会有滞后,最新的具体详细介绍请查看工具帮助信息。
$ gf
USAGE
gf COMMAND [OPTION]
COMMAND
env show current Golang environment variables
run running go codes with hot-compiled-like feature
gen automatically generate go files for dao/dto/entity/pb/pbentity...
init create and initialize an empty GoFrame project
pack packing any file/directory to a resource file, or a go file
build cross-building go project for lots of platforms
docker build docker image for current GoFrame project
install install gf binary to system (might need root/admin permission)
version show version information of current binary
OPTION
-y, --yes all yes for all command without prompt ask
-v, --version show version information of current binary
-d, --debug show internal detailed debugging information
-h, --help more information about this command
ADDITIONAL
Use "gf COMMAND -h" for details about a command.
相关文档
📄️ 工具安装-install
GoFrame框架命令行工具gf的安装指南,提供多种安装方式包括预编译二进制文件下载和通过go install命令安装。支持MacOS、Linux和Windows等多种操作系统,对于Mac/Linux系统提供一键快捷下载命令。install命令用于将gf工具安装到系统环境变量路径中,使用户可在任意目录下直接使用gf命令。文档详细说明了不同版本(v2/v1)的下载和安装方法,并提供了完整的安装示例和注意事项,包括MacOS zsh别名冲突的解决方案。
📄️ 版本查看-version
GoFrame命令行工具的版本信息查看命令,通过gf -v或gf version查看gf工具的详细版本信息。命令会显示多项关键信息:CLI工具本身的编译版本、当前项目go.mod中使用的GoFrame框架版本、Go编译器版本、Git提交版本和构建时间等。特别需要注意区分项目中引用的GoFrame版本与CLI工具编译时的GF版本,这两者可能不同。该命令对于排查版本兼容性问题和确认工具安装状态非常有用。
📄️ 框架升级-up
GoFrame框架提供的一键升级命令工具,从v2.3版本开始提供。通过gf up命令可以将项目中的GoFrame主框架和社区组件同时升级至最新版本,并且能够智能识别和自动修复版本升级过程中的不兼容代码变更。支持多种升级选项:单独升级框架版本、同时升级CLI工具、开启自动代码修复等。升级前建议git提交或备份代码,以便必要时回滚。该工具特别适合需要频繁更新框架版本的项目,能够大大简化版本迁移和升级流程。
📄️ 项目创建-init
GoFrame框架提供的项目初始化命令工具,通过gf init命令快速创建标准化的GoFrame项目脚手架。从v2版本开始,项目模板已内置于工具二进制文件中,创建速度极快。支持创建SingleRepo单仓项目、MonoRepo大仓项目和MonoRepoApp大仓子项目三种模式。同时支持从远程仓库拉取模板创建项目,包括Go模块和Git仓库子目录两种方式。提供交互式模式引导用户完成项目创建,支持自定义Go模块路径、版本选择、依赖升级等高级功能。生成的目录结构遵循框架推荐的代码分层设计规范,项目结构采用通用化设计,开发者可根据实际需求灵活调整。
📄️ 交叉编译-build
GoFrame提供的gf build命令是go build的强大封装工具,支持多平台多架构的交叉编译。该命令可自动嵌入编译变量(Go版本、GoFrame版本、Git Commit、编译时间等),支持配置文件和命令行参数,支持资源文件打包,为Go项目的跨平台构建提供便捷高效的解决方案。
🗃️ 代码生成-gen(🔥重点🔥)
6 个项目
📄️ 自动编译-run
GoFrame框架提供的自动编译运行命令工具,通过gf run命令实现类似热编译的开发体验。需要注意Golang本身不支持真正的热编译,gf run实际是通过监控项目go文件变化来自动触发重新编译和运行,从而避免手动停止、编译、启动的重复操作。工具会递归监控当前运行目录的所有go文件变化,支持自定义编译参数、运行参数、输出目录以及额外监控路径等配置,支持命令行和配置文件两种参数配置方式,显著提升本地开发调试效率。
📄️ 资源打包-pack
GoFrame框架提供的资源打包命令工具,通过gf pack命令将项目中的任意文件或目录(如静态资源、模板文件、配置文件等)打包成二进制资源文件或Go代码文件。打包后的资源文件可以嵌入到可执行文件中,实现单一可执行文件部署,无需另外携带资源文件。支持多源路径打包、自定义路径前缀、保留源路径等灵活配置,可与build命令结合实现打包和编译一步完成。该功能特别适用于需要将前端资源、配置文件嵌入后端服务的场景。
📄️ 镜像编译-docker
GoFrame提供的gf docker命令用于将Go项目编译并打包成Docker镜像。该命令支持自动执行二进制编译、镜像构建和推送等操作,支持通过命令行参数或配置文件管理构建选项。从v2.5版本起,推荐使用Makefile脚本组合gf build、gf gen enums、gf docker等命令,提供更灵活的镜像构建方案。
📄️ 兼容修复-fix
GoFrame提供的gf fix命令用于自动修复GoFrame版本升级过程中的代码兼容性问题。该命令从v2.3版本开始提供,可自动检测项目中使用的GoFrame版本,并应用相应的兼容性修复规则,支持重复执行且无副作用。在框架难以保证完全向下兼容时,此命令可有效帮助开发者快速完成代码更新。
📄️ 工具帮助-help
GoFrame命令行工具的帮助命令使用指南,通过gf -h查看gf工具的所有命令列表和基本使用说明,通过gf [COMMAND] -h查看特定命令的详细帮助信息和参数说明。帮助命令是快速掌握工具使用方法的最佳途径,对于初学者或遇到使用问题时,优先使用help命令查阅内置的帮助信息,可以快速解决大部分常见问题,提供命令用法、选项参数、示例用例等详尽信息。