gf-cli v0.7.4 发布, GoFrame 开发工具链 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
johng
V2EX    Go 编程语言

gf-cli v0.7.4 发布, GoFrame 开发工具链

< href="Javascript:" Onclick="upVoteTopic(669586);" class="vote">
  •  
  •   johng 2020-05-08 11:45:16 +08:00 2353 次点击
    这是一个创建于 1982 天前的主题,其中的信息可能已经有所发展或是发生改变。

    工具开源项目地址: https://github.com/gogf/gf-cli

    我们推荐通过下载安装预编译的二进制使用。工具安装成功后,可以通过gf或者gf -h查看所有支持的命令。复杂的命令可以通过gf help COMMAND或者gf COMMAND -h查看更详细的使用帮助信息,例如:gf help gengf gen -h

    $ gf USAGE gf COMMAND [ARGUMENT] [OPTION] COMMAND get install or update GF to system in default... gen automatically generate go files for ORM models... 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 parse and start a swagger feature server 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来解决。

    version 工具版本查看

    使用方式:

    • gf -v
    • gf -i
    • gf version

    用以查看当前gf命令行工具编译时的版本信息。例如:

    $ gf -v GoFrame CLI Tool v0.7.4, https://goframe.org Install Path: /usr/local/bin/gf Build Detail: Go Version: go1.14 GF Version: v1.12.1 Git Commit: bd19f7af64f9d34fac2d4d10043ff8020a1ec74a Build Time: 2020-04-18 14:41:58 

    init 项目初始化

    使用方式:gf init [NAME]

    我们可以使用init命令在当前目录生成一个示例的GF空框架项目,并可给定可选的项目名称参数。生成的项目目录结构仅供参考,根据业务项目具体情况可自行调整。

    GF框架开发推荐统一使用官方的go module特性进行依赖包管理,因此空项目根目录下也有一个go.mod文件。

    build 交叉编译

    使用方式:gf build FILE [OPTION]

    仅限于交叉编译使用到GF框架的项目,支持绝大部分常见系统的直接交叉编译。并且支持配置文件管理编译选项、嵌入编译时变量,默认嵌入的编译时变量包括(参考gf -v):

    1. 当前Go版本。
    2. 当前GF版本。
    3. 当前编译时间。
    4. 当前Git Commit(如果存在)。

    编译配置文件选项示例(默认读取config.toml):

    [compiler] name = "my-app" version = "1.0.0" arch = "386,amd64" system = "linux,windows,darwin" output = "" path = "./bin" extra = "-ldflags \"-s -w\"" # 自定义编译时内置变量 [compiler.VarMap] author = "john" email = "[email protected]" 

    配置选项的释义同命令行同名选项。

    编译时的内置变量可以在运行时通过gbuild包获取。

    gen 代码生成命令

    使用方式:gf gen model [PATH] [OPTION]

    gen命令用以自动化从数据库直接生成模型文件。可以参考gf-demos示例项目中的模型文件即是通过该命令生成的: https://github.com/gogf/gf-demos/tree/master/app/model

    模型生成采用了Active Record设计模式。该命令将会根据数据表名生成对应的目录,该目录名称即数据表包名。目录下自动生成 3 个文件:

    1. 数据表名.go 自定义文件,开发者可以自由定义填充的代码文件,仅会生成一次,每一次模型生成不会覆盖。
    2. 数据表名_entity.go 表结构文件,根据数据表结构生成的结构体定义文件,包含字段注释。数据表在外部变更后,可使用gen命令重复生成更新该文件。
    3. 数据表名_model.go 表模型文件,为数据表提供了许多便捷的CURD操作方法,并可直接查询返回该表的结构体对象。数据表在外部变更后,可使用gen命令重复生成更新该文件。

    数据表模型生成支持的数据库类型为:MySQL/MariaDBPostgreSQLSQLiteSQLServer。目前暂不支持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。非必需参数OPTIONSdocker build命令相同参数及选项。

    update 工具更新

    使用方式:gf update

    该命令用以检测gf命令行工具的版本,并自动执行版本更新。

    部分系统需要管理员权限支持。如果更新失败,请手动重新下载更新。

    pack 二进制打包

    使用方式:gf pack SRC DST

    该命令用以将任意的文件打包为二进制文件,或者Go代码文件,可将任意文件打包后随着可执行文件一同发布。此外,在build命令中支持打包+编译一步进行,具体请查看build命令帮助信息。

    help 命令行帮助

    使用方式:

    • gf -h
    • gf -?
    • gf help [COMMAND]
    • gf [COMMAND] -h

    任何不懂的,就用help看看吧。

    2 条回复    2020-05-08 16:05:38 +08:00
    susecjh
        1
    susecjh  
       2020-05-08 12:16:00 +08:00
    和我司工具链有些大同小异,支持!
    burringcat
        2
    burringcat  
       2020-05-08 16:05:38 +08:00 via Android
    gf install girlfriend
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2186 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 00:49 PVG 08:49 LAX 17:49 JFK 20:49
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86