gf tool chain
从GF v1.9
版本开始提供了gf
命令行开发辅助工具,将会随着框架发展不断完善,作为未来框架发展的一个重要组成部分,工具开源项目地址:https://github.com/gogf/gf-cli
...
$ gf
USAGE
gf COMMAND [ARGUMENT] [OPTION]
COMMAND
env show current Golang environment variables
get install or update GF to system in default...
gen automatically generate go files for ORM models...
mod extra features for go modules...
run running go codes with hot-compiled-like feature...
init initialize an empty GF project at current working directory...
help show more information about a specified command
pack packing any file/directory to a resource file, or a go file...
build cross-building go project for lots of platforms...
docker create a docker image for current GF project...
swagger swagger feature for current project...
update update current gf binary to latest one (might need root/admin permission)
install install gf binary to system (might need root/admin permission)
version show current binary version info
OPTION
-y all yes for all command without prompt ask
-?,-h show this help or detail for specified command
-v,-i show version information
ADDITIONAL
Use 'gf help COMMAND' or 'gf COMMAND -h' for detail about a command, which has '...'
in the tail of their comments.
install
工具安装
使用方式:./gf install
该命令往往是在gf
命令行工具下载到本地后执行(注意执行权限),用于将gf
命令安装到系统环境变量默认支持的目录路径中,以便于在系统任何的地方直接可以使用gf
工具。
部分系统需要管理员权限支持。
如果是
MacOS
下使用zsh
的小伙伴可能会遇到别名冲突问题,可以通过alias gf=gf
来解决,运行一次之后gf
工具会自动修改profile
中的别名设置,用户重新登录就好了。
version
工具版本查看
使用方式: - gf -v
- gf -i
- gf version
...
$ gf -v
GoFrame CLI Tool v0.7.5, https://goframe.org
Built Detail:
Go Version: go1.13.5
GF Version: v1.13.0
Git Commit: 0ab2a4a9e753f4f5fae1e96ecf40cae94895d494
Built Time: 2020-06-05 23:30:39
init
项目初始化
使用方式:gf init [NAME]
我们可以使用init
命令在当前目录生成一个示例的GF
空框架项目,并可给定可选的项目名称参数。生成的项目目录结构仅供参考,根据业务项目具体情况可自行调整。
GF
框架开发推荐统一使用官方的go module
特性进行依赖包管理,因此空项目根目录下也有一个go.mod
文件。
build
交叉编译
使用方式:gf build FILE [OPTION]
...
编译时的内置变量可以在运行时通过
gbuild
包获取。
gen
代码生成命令
使用方式:gf gen model [PATH] [OPTION]
...
数据表模型生成支持的数据库类型为:
MySQL/MariaDB
、PostgreSQL
、SQLite
、SQLServer
。目前暂不支持Oracle
,若有需求请联系作者。
run
热编译(自动编译)
使用方式:gf run FILE
由于Go
是不支持热编译特性的,每一次代码变更后都要重新手动停止、编译、运行代码文件。run
命令也不是实现热编译功能,而是提供了自动编译功能,当开发者修改了项目中的go
文件时,该命令将会自动编译当前程序,并停止原有程序,运行新版的程序。
run
命令会递归监控当前运行目录的所有go
文件变化来实现自动编译。
get
依赖包下载
使用方式:gf get PACKAGE
gf get
命令和go get
命令类似,内部自动提供了代理设置功能,并智能识别并设置最快的下载代理地址。
docker
镜像编译
使用方式:gf docker [FILE] [OPTIONS]
自动编译并生成docker
镜像。非必需FILE
参数为编译文件路径,默认为main.go
。非必需参数OPTIONS
为docker build
命令相同参数及选项。
update
工具更新
使用方式:gf update
该命令用以检测gf
命令行工具的版本,并自动执行版本更新。
部分系统需要管理员权限支持。如果更新失败,请手动重新下载更新。
pack
二进制打包
使用方式:gf pack SRC DST
该命令用以将任意的文件打包为二进制文件,或者Go
代码文件,可将任意文件打包后随着可执行文件一同发布。此外,在build
命令中支持打包+编译一步进行,具体请查看build
命令帮助信息。
mod
包管理扩展功能
使用方式:gf mod path
该命令用于将当前go modules
包拷贝到GOPATH
中,以便使用原始的GOPATH
方式开发,往往为了方便调试本地开发的依赖包。
help
命令行帮助
使用方式: - gf -h
- gf -?
- gf help [COMMAND]
- gf [COMMAND] -h
...