gf tool chain
我们推荐通过下载安装预编译的二进制使用。工具安装成功后,可以通过gf
或者gf -h
查看所有支持的命令。复杂的命令可以通过gf help COMMAND
或者gf COMMAND -h
查看更详细的使用帮助信息,例如:gf help gen
、gf gen -h
。
使用方式:./gf install
该命令往往是在gf
命令行工具下载到本地后执行(注意执行权限),用于将gf
命令安装到系统环境变量默认支持的目录路径中,以便于在系统任何的地方直接可以使用gf
工具。
部分系统需要管理员权限支持。
如果是
MacOS
下使用zsh
的小伙伴可能会遇到别名冲突问题,可以通过alias gf=gf
来解决,运行一次之后gf
工具会自动修改profile
中的别名设置,用户重新登录就好了。
version
工具版本查看
使用方式:
gf -i
gf version
用以查看当前gf
命令行工具编译时的版本信息。例如:
init
项目初始化
使用方式:gf init [NAME]
我们可以使用init
命令在当前目录生成一个示例的GF
空框架项目,并可给定可选的项目名称参数。生成的项目目录结构仅供参考,根据业务项目具体情况可自行调整。
build
交叉编译
使用方式:gf build FILE [OPTION]
仅限于交叉编译使用到GF
框架的项目,支持绝大部分常见系统的直接交叉编译。并且支持配置文件管理编译选项、嵌入编译时变量。使用gf build
的项目将会默认嵌入以下变量(参考gf -v
):
- 当前
Go
版本。 - 当前
GF
版本。 - 当前
Git Commit
(如果存在)。
编译配置文件选项示例(默认读取config.toml
):
配置选项的释义同命令行同名选项。
编译时的内置变量可以在运行时通过
gbuild
包获取。
使用方式:gf gen model [PATH] [OPTION]
gen
命令用以自动化从数据库直接生成模型文件。可以参考gf-demos
示例项目中的模型文件即是通过该命令生成的:
模型生成采用了Active Record
设计模式。该命令将会根据数据表名生成对应的目录,该目录名称即数据表包名。目录下自动生成3个文件:
数据表名.go
自定义文件,开发者可以自由定义填充的代码文件,仅会生成一次,每一次模型生成不会覆盖。数据表名_entity.go
表结构文件,根据数据表结构生成的结构体定义文件,包含字段注释。数据表在外部变更后,可使用gen
命令重复生成更新该文件。数据表名_model.go
表模型文件,为数据表提供了许多便捷的CURD
操作方法,并可直接查询返回该表的结构体对象。数据表在外部变更后,可使用gen
命令重复生成更新该文件。
run
热编译(自动编译)
使用方式:gf run FILE
由于Go
是不支持热编译特性的,每一次代码变更后都要重新手动停止、编译、运行代码文件。run
命令也不是实现热编译功能,而是提供了自动编译功能,当开发者修改了项目中的go
文件时,该命令将会自动编译当前程序,并停止原有程序,运行新版的程序。
get
依赖包下载
使用方式:gf get PACKAGE
gf get
命令和go get
命令类似,内部自动提供了代理设置功能,并智能识别并设置最快的下载代理地址。
docker
镜像编译
使用方式:gf docker [FILE] [OPTIONS]
自动编译并生成docker
镜像。非必需FILE
参数为编译文件路径,默认为main.go
。非必需参数OPTIONS
为docker build
命令相同参数及选项。
使用方式: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]
任何不懂的,就用help
看看吧。