使用方式
具体参数,使用 gf build -h
查看帮助
仅限于交叉编译使用到 GoFrame
框架的项目,支持绝大部分常见系统的直接交叉编译。
内置编译变量
build
命令自动嵌入编译变量,这些变量用户可自定义,并且在运行时通过 gbuild
组件获取。使用 gf build
的项目将会默认嵌入以下变量(参考 gf -v
):
- 当前
Go
版本 - 当前
GoFrame
版本 - 当前
Git Commit
(如果存在) - 当前编译时间
编译配置文件
build
支持同时从命令行以及配置文件指定编译参数、选项。 GoFrame
框架的所有组件及所有生态项目都是使用的同一个配置管理组件,默认的配置文件以及配置使用请参考章节 配置管理。以下是一个简单的配置示例供参考(以hack/config.yaml为例):
gfcli:
build:
name: "gf"
arch: "all"
system: "all"
mod: "none"
packSrc: "resource,manifest"
version: "v1.0.0"
output: "./bin"
extra: ""
配置选项的释义同命令行同名选项。
名称 | 默认值 | 含义 | 示例 |
---|---|---|---|
name | 与程序入口 go 文件同名 | 生成的可执行文件名称。如果是 windows 平台,那么默认会加上 .exe 后缀 | gf |
arch | 当前系统架构 | 编译架构,多个以 , 号分隔,如果是 all 表示编译所有支持架构 | 386,amd64,arm |
system | 当前系统平台 | 编译平台,多个以 , 号分隔,如果是 all 表示编译所有支持平台 | linux,darwin,windows |
path | ./bin | 编译可执行文件存储的 目录地址 | ./bin |
mod | 同 go build -mod 编译选项,不常用 | none | |
cgo | 0 | 是否开启 CGO ,默认是关闭的。如果开启,那么交叉编译可能会有问题。 | 0 |
packSrc | 需要打包的目录,多个以 , 号分隔,生成到 internal/packed/build_pack_data.go | public,template | |
packDst | internal/packed/build_pack_data.go |