mirror of
https://gitee.com/san-bing/JChargePointProtocol
synced 2026-06-23 00:19:44 +08:00
109 lines
2.3 KiB
Markdown
109 lines
2.3 KiB
Markdown
# 开发者指南
|
||
|
||
本文档面向首次参与 JChargePointProtocol 开发的同学,提供一套可执行的本地开发流程。
|
||
|
||
## 1. 环境准备
|
||
|
||
请先安装以下工具并确保命令可用:
|
||
|
||
- JDK 21
|
||
- Maven 3.9+
|
||
- Node.js 18+(建议 LTS)
|
||
- Docker / Docker Compose
|
||
|
||
建议验证:
|
||
|
||
```bash
|
||
java -version
|
||
mvn -version
|
||
node -v
|
||
docker -v
|
||
```
|
||
|
||
## 2. 获取代码
|
||
|
||
```bash
|
||
git clone https://github.com/sanbing-java/JChargePointProtocol.git
|
||
cd JChargePointProtocol
|
||
```
|
||
|
||
## 3. 启动依赖服务
|
||
|
||
优先使用项目脚本:
|
||
|
||
```bash
|
||
bash docker/start.sh
|
||
```
|
||
|
||
若需手动启动,可按环境组合对应的 compose 文件(PostgreSQL/Redis/Kafka)。
|
||
|
||
## 4. 后端构建与运行
|
||
|
||
### 4.1 全量构建(推荐)
|
||
|
||
```bash
|
||
mvn clean license:format install
|
||
```
|
||
|
||
### 4.2 启动应用服务
|
||
|
||
```bash
|
||
mvn spring-boot:run -pl jcpp-app-bootstrap
|
||
```
|
||
|
||
### 4.3 启动协议服务(微服务模式)
|
||
|
||
```bash
|
||
mvn spring-boot:run -pl jcpp-protocol-bootstrap
|
||
```
|
||
|
||
## 5. 前端构建与运行
|
||
|
||
```bash
|
||
cd jcpp-web-ui
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
默认情况下通过前端开发服务器访问页面,后端接口走代理配置。
|
||
|
||
## 6. 常用开发任务
|
||
|
||
### 6.1 新增协议实现
|
||
|
||
1. 在对应 `jcpp-protocol-*` 模块新增协议 bootstrap 与命令处理器
|
||
2. 对齐上行解析、下行编码、会话管理
|
||
3. 增加必要测试与文档(`核心模块详解/协议实现模块/`)
|
||
|
||
### 6.2 新增业务接口
|
||
|
||
1. 在 `jcpp-app` 中补充 Service 与 Controller
|
||
2. 同步更新 `API接口参考/`
|
||
3. 联调协议层下行/上行链路
|
||
|
||
### 6.3 数据模型变更
|
||
|
||
1. 更新实体、Mapper 与 SQL 迁移
|
||
2. 同步更新 `数据模型与数据库设计.md`
|
||
3. 执行回归验证
|
||
|
||
## 7. 调试建议
|
||
|
||
- 优先看协议层连接与会话日志,再看业务层处理日志
|
||
- 问题定位按链路走:连接建立 -> 报文解析 -> 消息转发 -> 业务处理 -> 回包
|
||
- 关注缓存与会话一致性,避免“会话存在但通道失效”类问题
|
||
|
||
## 8. 提交前检查清单
|
||
|
||
- 编译通过:`mvn clean license:format install`
|
||
- 核心链路自测通过(至少覆盖一条上行与一条下行)
|
||
- 文档已同步(接口/架构/运维任一变更都需更新)
|
||
- 无明显日志污染与调试代码残留
|
||
|
||
## 9. 相关文档
|
||
|
||
- `系统概述.md`
|
||
- `架构设计/架构设计.md`
|
||
- `核心模块详解/核心模块详解.md`
|
||
- `监控与运维.md`
|