源码编译

在开始前,建议首先阅读 YAO 架构解析, 了解 YAO 的源码结构。

开发环境

YAO 采用 golang 开发,可以在 Mac 或 Linux 环境中建立开发环境。

工具版本说明
Golang1.18+Golang
MySQL8.0+可选

Golang

推荐使用 Docker 安装服务

MySQL Docker 镜像

源码下载

YAO 相关的代码仓库

仓库说明
https://github.com/yaoapp/yaoYao
https://github.com/yaoapp/gou引擎框架
https://github.com/yaoapp/xunORM
https://github.com/yaoapp/kun常用数据处理包
https://github.com/yaoapp/v8goV8 JavaScirpt 引擎

下载源码到项目目录

mkdir /your-project/root
git clone https://github.com/yaoapp/yao
git clone https://github.com/yaoapp/gou
git clone https://github.com/yaoapp/xun
git clone https://github.com/yaoapp/kun
git clone https://github.com/yaoapp/v8go

环境变量

设置环境变量用于源码调试

变量说明示例
YAO_DEV源码路径/your-project/root/yao
YAO_ENV测试应用启动方式 development | productiondevelopment
YAO_ROOT测试应用目录/your-project/root/yao/tests
YAO_HOST监听主机0.0.0.0
YAO_PORT监听端口5099
YAO_LOG测试应用日志文件/your-project/root/yao/tests/logs
YAO_JWT_SECRETJWT 密钥qo-2U+hoTRU
YAO_DB_AESKEY数据库 AES KEYLX=T&f6refe
export YAO_DEV="/your-project/root/yao"
export YAO_ENV="development"
export YAO_ROOT="/your-project/root/yao/tests"
export YAO_HOST="0.0.0.0"
export YAO_PORT="5099"
export YAO_LOG="/your-project/root/yao/tests/logs"
export YAO_JWT_SECRET="qo-2U+hoTRU"
# 启用 MySQL 数据库
export YAO_DB_DRIVER=mysql
export YAO_DB_PRIMARY="root:db-password@tcp(db-server:3308)/xiang?charset=utf8mb4&parseTime=True&loc=Local"
export YAO_DB_AESKEY="LX=T&f6refe"

单元测试

进入 Yao 项目目录运行单元测试

cd /your-project/root/yao
make test

运行调试

使用 Go 命令调试

cd /your-project/root/yao
go run .
go run . run xiang.sys.ping
go run . start

编译制品

首次编译需安装相关工具

cd /your-project/root/yao
make tools

编译过程中会从 https://github.com/YaoApp/xgen.git 仓库拉取代码并构建 需提前安装 nodejs 16+

MacOS

cd /your-project/root/yao
make release

制品为 dist/release/yao

Linux

cd /your-project/root/yao
make linux-release

制品为 dist/release/yao

Debug 调试

不集成 XGen 界面引擎

make debug

制品为 dist/release/yao-debug

Workflows

https://github.com/YaoApp/yao/blob/main/.github/workflows/release-linux.yml https://github.com/YaoApp/yao/blob/main/.github/workflows/release-macos.yml

编译环境镜像

编译环境 Dockerfile: https://github.com/YaoApp/dockerfiles/tree/main/build

镜像使用

docker run -it --rm yaoapp/yao-build:0.10.1-amd64 /bin/bash
docker run -it --rm -v /path/source:/source yaoapp/yao-build:0.10.1-amd64 /bin/bash

镜像构建

docker build --platform linux/amd64 -t yaoapp/yao-build:0.10.1-amd64 .

源码编译

在开始前,建议首先阅读 YAO 架构解析, 了解 YAO 的源码结构。

开发环境

YAO 采用 golang 开发,可以在 Mac 或 Linux 环境中建立开发环境。

工具版本说明
Golang1.18+Golang
MySQL8.0+可选

Golang

推荐使用 Docker 安装服务

MySQL Docker 镜像

源码下载

YAO 相关的代码仓库

仓库说明
https://github.com/yaoapp/yaoYao
https://github.com/yaoapp/gou引擎框架
https://github.com/yaoapp/xunORM
https://github.com/yaoapp/kun常用数据处理包
https://github.com/yaoapp/v8goV8 JavaScirpt 引擎

下载源码到项目目录

mkdir /your-project/root
git clone https://github.com/yaoapp/yao
git clone https://github.com/yaoapp/gou
git clone https://github.com/yaoapp/xun
git clone https://github.com/yaoapp/kun
git clone https://github.com/yaoapp/v8go

环境变量

设置环境变量用于源码调试

变量说明示例
YAO_DEV源码路径/your-project/root/yao
YAO_ENV测试应用启动方式 development | productiondevelopment
YAO_ROOT测试应用目录/your-project/root/yao/tests
YAO_HOST监听主机0.0.0.0
YAO_PORT监听端口5099
YAO_LOG测试应用日志文件/your-project/root/yao/tests/logs
YAO_JWT_SECRETJWT 密钥qo-2U+hoTRU
YAO_DB_AESKEY数据库 AES KEYLX=T&f6refe
export YAO_DEV="/your-project/root/yao"
export YAO_ENV="development"
export YAO_ROOT="/your-project/root/yao/tests"
export YAO_HOST="0.0.0.0"
export YAO_PORT="5099"
export YAO_LOG="/your-project/root/yao/tests/logs"
export YAO_JWT_SECRET="qo-2U+hoTRU"
# 启用 MySQL 数据库
export YAO_DB_DRIVER=mysql
export YAO_DB_PRIMARY="root:db-password@tcp(db-server:3308)/xiang?charset=utf8mb4&parseTime=True&loc=Local"
export YAO_DB_AESKEY="LX=T&f6refe"

单元测试

进入 Yao 项目目录运行单元测试

cd /your-project/root/yao
make test

运行调试

使用 Go 命令调试

cd /your-project/root/yao
go run .
go run . run xiang.sys.ping
go run . start

编译制品

首次编译需安装相关工具

cd /your-project/root/yao
make tools

编译过程中会从 https://github.com/YaoApp/xgen.git 仓库拉取代码并构建 需提前安装 nodejs 16+

MacOS

cd /your-project/root/yao
make release

制品为 dist/release/yao

Linux

cd /your-project/root/yao
make linux-release

制品为 dist/release/yao

Debug 调试

不集成 XGen 界面引擎

make debug

制品为 dist/release/yao-debug

Workflows

https://github.com/YaoApp/yao/blob/main/.github/workflows/release-linux.yml https://github.com/YaoApp/yao/blob/main/.github/workflows/release-macos.yml

编译环境镜像

编译环境 Dockerfile: https://github.com/YaoApp/dockerfiles/tree/main/build

镜像使用

docker run -it --rm yaoapp/yao-build:0.10.1-amd64 /bin/bash
docker run -it --rm -v /path/source:/source yaoapp/yao-build:0.10.1-amd64 /bin/bash

镜像构建

docker build --platform linux/amd64 -t yaoapp/yao-build:0.10.1-amd64 .