# 飞机大战 **Repository Path**: PYDCry/ShootPlan ## Basic Information - **Project Name**: 飞机大战 - **Description**: 飞机大战联机对战版 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-14 - **Last Updated**: 2026-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 飞机大战 基于 Vue 3、Java 21、ioGame 21.34 和 MySQL 8.4 的双人在线回合制 Web 游戏。 ## 环境要求 - Windows 11 - Java 21 - Maven 3.9+ - Node.js 22+ - Docker Desktop ## 启动数据库 ```powershell Copy-Item .env.example .env docker compose up -d mysql docker compose ps ``` MySQL 数据挂载到 `D:\Work\TestProject\ShootPlane\databaseTemp`。建表与升级脚本保存在 `database/init/`,按文件名顺序执行;数据库与服务端统一使用 `Asia/Shanghai` 业务时间。 ## 启动后端 ```powershell Set-Location server mvn spring-boot:run ``` - HTTP API:`http://localhost:8080` - ioGame WebSocket:`ws://localhost:10100/websocket` - 健康检查:`http://localhost:8080/actuator/health` ## 启动前端 ```powershell Set-Location web npm install npm run dev ``` 前端地址:`http://localhost:5173` ## Docker 全栈启动 数据库默认仍可单独启动。需要容器化启动前端、后端和 MySQL 时执行: ```powershell docker compose --profile app up -d --build docker compose ps ``` 访问地址:`http://localhost`。Nginx 同源代理 `/api` 与 `/websocket`,无需单独暴露后端端口。 ## 验证 ```powershell Set-Location server mvn test $env:RUN_MYSQL_INTEGRATION_TESTS='true' $env:SPRING_DATASOURCE_URL='jdbc:mysql://localhost:3306/shoot_plane?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai' $env:SPRING_DATASOURCE_USERNAME='shoot_plane' $env:SPRING_DATASOURCE_PASSWORD='shoot_plane_dev_password' $env:SPRING_DATASOURCE_DRIVER_CLASS_NAME='com.mysql.cj.jdbc.Driver' mvn -Dtest=BattleServiceMySqlIT test Set-Location ..\web npm run build ```