GoFrame框架提供了功能强大的gf命令行开发辅助工具,是框架发展的一个重要组成部分,工具地址:

工具安装请参考仓库页面。工具安装成功后,可以通过gf或者gf -h查看所有支持的命令。复杂的命令可以通过gf COMMAND -h查看更详细的使用帮助信息,例如:gf gen -h

工具职责

  1. 简化工程开发,提高开发效率
  2. 支持框架工程设计规范准确落地

注意事项

  1. 部分命令需要您先安装好Golang基础的开发环境,环境安装具体请参考 环境安装 章节。
  2. 最新的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.  

相关文档









Content Menu

  • No labels

19 Comments

  1. USAGE
        gf COMMAND [ARGUMENT] [OPTION]

    COMMAND
        env        查看golang的环境变量
        get        依赖包下载
        gen        自动生成 ORM代码
        mod        go modules的相关命令[扩展功能]    
    run 以热编译(自动编译)的方式运行代码 init 创建项目并初始化 help 查看命令的更多提示信息 pack 打包文件或目录 到资源文件或一个go文件 build 交叉编译 docker 为当前项目创建docker镜像 swagger 使用swagger生成API文档 update 更新GF到最新版本 (可能需要管理员权限) install 安装GF (可能需要管理员权限)
      version 查看GF版本信息


    1. 这个怎么转换成中文的

      1. 我手动翻译的  哈哈😄

  2. gf  install 没有安装到PATH指定的路径中!

  3. 有没有人注意到这个gf,跟命令行里面git的flow模式重名了

    gf -h
    用法:git fetch [<选项>] [<仓库> [<引用规格>...]]
       或:git fetch [<选项>] <组>
       或:git fetch --multiple [<选项>] [(<仓库> | <组>)...]
       或:git fetch --all [<选项>]

        -v, --verbose         更加详细
        -q, --quiet           更加安静
        --all                 从所有的远程抓取

    ...

    1. 可能是因为你使用的shell插件(例如: oh-my-zsh) 给你创建了alias

  4. 强哥,以后会在工具中加入数据迁移和数据填充功能吗?

  5. pb文件的生成在windows下有BUG,*.proto是执行不了的,

    且pb没办法引用第三方库呀。


  6. 文章最前部分的这个地址是个 404 啊。

  7. 请教一下,升级gf-cli 的时候出现


    .zsh killed  是什么问题? 需要配置什么吗

     郭强 


    1. 补充;macos m1 

      1.  hi ,目前可以安装到最新的rc3 . 因为我是用mac m1 arm64  所以我下载的是对应的版本 后执行 install

        gf_darwain_arm64 结果是出出现我提到的. zsh killed 

        我下载gf_darwin_amd64 执行同样的操作可以了. 

        不知原因(我知道m1 上是可以支持amd64)为什么arm64 出现上述问题 

        郭强 

        1. 我没有m1环境,如果不行的话可以手动clone源码进入cmd/gf目录go install一下。

          1. 谢谢回复! 

            好的,不过目前amd的也可以用. 

            回头我用编译安装的方式试一下.

            谢谢 ~

  8. gf rc3升级了什么,和rc2区别是什么

  9. 2.0 gf,不添加到环境变量,直接执行可执行文件进行build会报错, 
    2022-03-15 13:19:20.215 gf pack config,i18n,public,template packed/build_pack_data.go 
    /bin/bash: gf:未找到命令
    2022-03-15 13:19:20.217 remove the automatically generated resource go file: packed/build_pack_data.go 
    exception recovered: exit status 127
    1. exception recovered: exit status 127
       1).  github.com/gogf/gf/v2/os/gcmd.(*Command).doRun.func1
            /home/runner/work/gf/gf/os/gcmd/gcmd_command_run.go:97
       2).  github.com/gogf/gf/v2/os/gproc.MustShellRun
            /home/runner/work/gf/gf/os/gproc/gproc_must.go:23
       3).  github.com/gogf/gf/cmd/gf/v2/internal/cmd.cBuild.Index
            /home/runner/work/gf/gf/cmd/gf/internal/cmd/cmd_build.go:203
       4).  github.com/gogf/gf/v2/os/gcmd.newCommandFromMethod.func1
            /home/runner/work/gf/gf/os/gcmd/gcmd_command_object.go:306
       5).  github.com/gogf/gf/v2/os/gcmd.(*Command).doRun
            /home/runner/work/gf/gf/os/gcmd/gcmd_command_run.go:120
       6).  github.com/gogf/gf/v2/os/gcmd.(*Command).RunWithValueError
            /home/runner/work/gf/gf/os/gcmd/gcmd_command_run.go:77
       7).  github.com/gogf/gf/v2/os/gcmd.(*Command).RunWithValue
            /home/runner/work/gf/gf/os/gcmd/gcmd_command_run.go:32
       8).  github.com/gogf/gf/v2/os/gcmd.(*Command).Run
            /home/runner/work/gf/gf/os/gcmd/gcmd_command_run.go:26
       9).  main.main
            /home/runner/work/gf/gf/cmd/gf/main.go:69

  10. 从v1版本开始使用的,更新了`gf`和`v2`后发现,以前默认命令行带参数现在无效了,

    /usr/local/bin/gf gen dao -l "mysql:root:pass@tcp(127.0.0.1:3306)/test" -t

    找了很久,发现文档里写

    > 当给定命令行参数时优先读取命令行参数,如果命令行参数不存在时,自动读取配置文件中对应的参数名称。

    然后发现`hack`中`config`参数不正确,改为正确的参数后命令才可以执行,所以说其实优先是读取配置文件了,我用的`gf`是预编译的`release`,

    > https://github.com/gogf/gf/releases/tag/v2.1.0-rc4

    大家可以测测看是不是这个情况

  11. 郭强 请问V2.0是移除了swagger吗?http://localhost:8000/swagger/进去的页面只能看,不能操作

  12. 强哥,考虑增加一下 gf 命令的 completions 吗?就是命令在终端自动补全。(能增加中文更好~)