GoFrame - 強大的工具鏈集合
gf tool chain
從GF v1.9
版本開始提供了gf
命令列開發輔助工具,將會隨著框架發展不斷完善,作為未來框架發展的一個重要組成部分,工具開源專案地址:https://github.com/gogf/gf-cli
我們推薦通過下載安裝預編譯的二進位制使用。工具安裝成功後,可以通過gf
或者gf -h
檢視所有支援的命令。複雜的命令可以通過gf help COMMAND
或者gf COMMAND -h
檢視更詳細的使用幫助資訊,例如:gf help gen
、gf gen -h
。
工具執行初始化時將會自動開啟
Go Modules
特性並設定反向代理地址為https://goproxy.cn
。當前幫助文件以
gf cli v0.5.0
版本為例進行簡單的介紹,詳細的介紹資訊請檢視命令列幫助資訊。本章內容資訊可能會有滯後,最新的具體詳細介紹請檢視工具幫助資訊。
$ 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...
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
-?,-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.4.5, https://goframe.org
Built Detail:
Go Version: go1.13.5
GF Version: v1.10.1
Git Commit: 0ab2a4a9e753f4f5fae1e96ecf40cae94895d494
Built Time: 2020-01-05 11:30:39
init
專案初始化
使用方式:gf init [NAME]
我們可以使用init
命令在當前目錄生成一個示例的GF
空框架專案,並可給定可選的專案名稱引數。生成的專案目錄結構僅供參考,根據業務專案具體情況可自行調整。
GF
框架開發推薦統一使用官方的go module
特性進行依賴包管理,因此空專案根目錄下也有一個go.mod
檔案。
build
交叉編譯
使用方式:gf build FILE [OPTION]
僅限於交叉編譯使用到GF
框架的專案,支援絕大部分常見系統的直接交叉編譯。並且支援配置檔案管理編譯選項、嵌入編譯時變數,預設嵌入的編譯時變數包括(參考gf -v
):
- 當前
Go
版本。 - 當前
GF
版本。 - 當前編譯時間。
- 當前
Git Commit
(如果存在)。
編譯配置檔案選項示例(預設讀取config.toml
):
[compiler]
name = "my-app"
version = "1.0.0"
arch = "i386,amd64"
system = "linux,windows,darwin"
output = ""
path = "./bin"
extra = "-ldflags \"-s -w\""
# 自定義編譯時內建變數
[compiler.VarMap]
author = "john"
email = "john@goframe.org"
配置選項的釋義同命令列同名選項。
編譯時的內建變數可以在執行時通過
gbuild
包獲取。
gen
程式碼生成命令
使用方式:gf gen model [PATH] [OPTION]
gen
命令用以自動化從資料庫直接生成模型檔案。可以參考gf-demos
示例專案中的模型檔案即是通過該命令生成的:https://github.com/gogf/gf-demos/tree/master/app/model
模型生成採用了Active Record
設計模式。該命令將會根據資料表名生成對應的目錄,該目錄名稱即資料表包名。目錄下自動生成 3 個檔案:
-
資料表名.go
自定義檔案,開發者可以自由定義填充的程式碼檔案,僅會生成一次,每一次模型生成不會覆蓋。 -
資料表名_entity.go
表結構檔案,根據資料表結構生成的結構體定義檔案,包含欄位註釋。資料表在外部變更後,可使用gen
命令重複生成更新該檔案。 -
資料表名_model.go
表模型檔案,為資料表提供了許多便捷的CURD
操作方法,並可直接查詢返回該表的結構體物件。資料表在外部變更後,可使用gen
命令重複生成更新該檔案。
資料表模型生成支援的資料庫型別為:
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
命令幫助資訊。
help
命令列幫助
使用方式:
gf -h
gf -?
-
gf help [COMMAND]
gf [COMMAND] -h
任何不懂的,就用help
看看吧。
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- 強大的 Guava 工具類Guava
- 強烈推薦!大資料領域的頂級開源工具大集合大資料開源工具
- DevOps時代,企業數字化轉型需要強大的工具鏈dev
- 方正銳圖:強大的分色工具
- Windows下強大的同步工具 - robocopyWindows
- 強大的AWR-Format工具下載ORM
- awk 入門 —— 強大的文字分析工具
- 「 神器 」強大的系統清理工具
- SecureCRT for Mac 強大的終端SSH工具SecurecrtMac
- SecureCRT for Mac(強大的終端SSH工具)SecurecrtMac
- windows下強大的wmic命令列工具Windows命令列
- 強大生產力工具AlfredAlfred
- 強大k8slens工具K8S
- 集合框架-增強for框架
- Perfectly Clear Workbench for Mac(強大的影像清晰度增強工具)Mac
- 強大的模糊測試工具 go-fuzzGo
- Nova for mac 強大的程式碼編輯工具Mac
- EditReady for Mac(強大的影片轉碼工具)Mac
- 強大的影片轉碼工具EditReady for MacMac
- SecureCRT for Mac/win(強大的終端SSH工具)SecurecrtMac
- Nova for mac(強大的程式碼編輯工具)Mac
- Windows強大的命令列工具wmic介紹Windows命令列
- GoFrame Goland外掛GoFrameGoLand
- Rhino 6.27 for Mac 強大的3D建模工具Mac3D
- NineData:強大的ClickHouse圖形客戶端工具客戶端
- Artstudio Pro for Mac - 強大的照片編輯工具Mac
- 功能強大的三維包裝設計工具
- Color Wheel for Mac(強大的數字色輪工具)Mac
- 強大的終端SSH工具:SecureCRT 啟用版Securecrt
- 強大的影片下載工具Downie 4 mac中文Mac
- OpManager--強大的網路效能監控工具
- 12款強大的 HTML5 繪圖工具HTML繪圖
- 12個強大的Web服務測試工具Web
- Oracle11g ASM強大的新工具AMDUOracleASM
- 安全工具集合
- 強大的視窗布局增強工具:Rectangle Pro啟用最新版
- scoop——強大的Windows命令列包管理工具OOPWindows命令列
- AppX--強大的macOS應用開發工具APPMac