diff --git a/.gitea/config/cache-schema-check-config.yaml b/.gitea/config/serialization-schema-check-config.yaml
similarity index 84%
rename from .gitea/config/cache-schema-check-config.yaml
rename to .gitea/config/serialization-schema-check-config.yaml
index 86efd4c..ed07882 100644
--- a/.gitea/config/cache-schema-check-config.yaml
+++ b/.gitea/config/serialization-schema-check-config.yaml
@@ -1,10 +1,10 @@
# ============================================================
-# 缓存序列化结构变更检测 — 业务仓库配置
+# 序列化结构变更检测 — 业务仓库配置
# ============================================================
# 说明:
# - 本配置文件为业务覆盖配置,会与 jar 内 default-config.yaml 深度合并
# - 未声明的项沿用工具内置默认值(忽略规则、检测模式等)
-# - 当前实现以 Redis 写入检测为主,后续可扩展其他缓存
+# - 当前以 Redis 缓存写入检测为主;MQ(RocketMQ/Kafka)方案见 docs/MQ序列化结构检测方案.md
# 总开关 true-执行检测 false-跳过检测(流水线直接通过,不发通知)
enabled: true
@@ -17,7 +17,7 @@ notify:
enabled: true
webhook_url: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=fa14f0b3-e01a-40f6-96bd-e18beb94e85e
notify_on_clean: false
- title_prefix: "【缓存结构变更】"
+ title_prefix: "【序列化结构变更】"
# 观察期:先只扫描 jnpf-tenant 模块,稳定后改为 include_modules: []
include_modules:
diff --git a/.gitea/workflows/cache-schema-check.yaml b/.gitea/workflows/serialization-schema-check.yaml
similarity index 81%
rename from .gitea/workflows/cache-schema-check.yaml
rename to .gitea/workflows/serialization-schema-check.yaml
index d7fc265..ac0d288 100644
--- a/.gitea/workflows/cache-schema-check.yaml
+++ b/.gitea/workflows/serialization-schema-check.yaml
@@ -1,17 +1,17 @@
-name: 缓存序列化结构检查
-run-name: ${{ gitea.actor }}的缓存结构检查
+name: 序列化结构检查
+run-name: ${{ gitea.actor }}的序列化结构检查
on:
push:
workflow_dispatch:
env:
- # cache-schema-checker 私库坐标:com.codechecker:cache-schema-checker:1.0.0
- CACHE_SCHEMA_CHECKER_VERSION: "1.0.0"
- CACHE_SCHEMA_CHECKER_REPO_URL: "http://192.168.3.25:18081/nexus/repository/maven-releases"
+ # serialization-schema-checker 私库坐标:com.codechecker:serialization-schema-checker:1.0.0
+ SERIALIZATION_SCHEMA_CHECKER_VERSION: "1.0.0"
+ SERIALIZATION_SCHEMA_CHECKER_REPO_URL: "http://192.168.3.25:18081/nexus/repository/maven-releases"
jobs:
- cache-schema-check:
+ serialization-schema-check:
if: ${{ gitea.ref != 'refs/heads/pre' && gitea.ref != 'refs/heads/dev' && gitea.ref != 'refs/heads/master-2.0' }}
runs-on: jdk11
steps:
@@ -27,30 +27,30 @@ jobs:
git clone --depth 1 --single-branch --branch "${BRANCH}" "${REPO_URL}" .
git checkout -B "${BRANCH}" "${NEW_SHA}"
- echo "${NEW_SHA}" > /tmp/cache-schema-new-sha.txt
+ echo "${NEW_SHA}" > /tmp/serialization-schema-new-sha.txt
- name: 检查配置文件
run: |
- if [ ! -f .gitea/config/cache-schema-check-config.yaml ]; then
- echo "错误: 缺少 .gitea/config/cache-schema-check-config.yaml"
+ if [ ! -f .gitea/config/serialization-schema-check-config.yaml ]; then
+ echo "错误: 缺少 .gitea/config/serialization-schema-check-config.yaml"
exit 1
fi
# 顶层总开关 enabled: false 时跳过后续步骤(与 notify.enabled 区分,仅匹配行首)
- if grep -Eq '^enabled:[[:space:]]*false([[:space:]]|#|$)' .gitea/config/cache-schema-check-config.yaml; then
- echo "总开关 enabled=false,跳过缓存结构检查"
- touch /tmp/cache-schema-check.skip
+ if grep -Eq '^enabled:[[:space:]]*false([[:space:]]|#|$)' .gitea/config/serialization-schema-check-config.yaml; then
+ echo "总开关 enabled=false,跳过序列化结构检查"
+ touch /tmp/serialization-schema-check.skip
fi
- - name: 从 Nexus 私库下载 cache-schema-checker
+ - name: 从 Nexus 私库下载 serialization-schema-checker
run: |
- if [ -f /tmp/cache-schema-check.skip ]; then
+ if [ -f /tmp/serialization-schema-check.skip ]; then
echo "总开关已关闭,跳过下载"
exit 0
fi
- GROUP_PATH="com/codechecker/cache-schema-checker"
- JAR_NAME="cache-schema-checker-${CACHE_SCHEMA_CHECKER_VERSION}.jar"
- JAR_URL="${CACHE_SCHEMA_CHECKER_REPO_URL}/${GROUP_PATH}/${CACHE_SCHEMA_CHECKER_VERSION}/${JAR_NAME}"
+ GROUP_PATH="com/codechecker/serialization-schema-checker"
+ JAR_NAME="serialization-schema-checker-${SERIALIZATION_SCHEMA_CHECKER_VERSION}.jar"
+ JAR_URL="${SERIALIZATION_SCHEMA_CHECKER_REPO_URL}/${GROUP_PATH}/${SERIALIZATION_SCHEMA_CHECKER_VERSION}/${JAR_NAME}"
JAR_PATH="/tmp/${JAR_NAME}"
echo "下载: ${JAR_URL}"
@@ -72,25 +72,25 @@ jobs:
- name: 验证 JDK
run: |
- if [ -f /tmp/cache-schema-check.skip ]; then
+ if [ -f /tmp/serialization-schema-check.skip ]; then
echo "总开关已关闭,跳过"
exit 0
fi
echo "Java: $(java -version 2>&1 | head -1)"
- - name: 执行缓存序列化结构检测
+ - name: 执行序列化结构检测
env:
# push 前 tip;新分支首次 push 时为全 0。workflow_dispatch 可能为空,下方会回退。
PUSH_BEFORE: ${{ gitea.event.before }}
# push 事件携带的 commits 列表(JSON);用于准确统计 commit 数(不受浅克隆影响)
PUSH_COMMITS_JSON: ${{ toJson(gitea.event.commits) }}
run: |
- if [ -f /tmp/cache-schema-check.skip ]; then
+ if [ -f /tmp/serialization-schema-check.skip ]; then
echo "总开关已关闭,跳过检测"
exit 0
fi
- NEW_SHA=$(cat /tmp/cache-schema-new-sha.txt)
+ NEW_SHA=$(cat /tmp/serialization-schema-new-sha.txt)
OLD_SHA="${PUSH_BEFORE}"
# 新分支首次 push(before 全 0)→ 跳过
@@ -199,8 +199,8 @@ jobs:
COMMIT_TIME=$(git log -1 --format=%cd --date=format:'%Y-%m-%d %H:%M:%S' "${NEW_SHA}")
- java -jar "/tmp/cache-schema-checker-${CACHE_SCHEMA_CHECKER_VERSION}.jar" \
- --config .gitea/config/cache-schema-check-config.yaml \
+ java -jar "/tmp/serialization-schema-checker-${SERIALIZATION_SCHEMA_CHECKER_VERSION}.jar" \
+ --config .gitea/config/serialization-schema-check-config.yaml \
--repo-root . \
--old-sha "$OLD_SHA" \
--new-sha "$NEW_SHA" \
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 880e7f1..b23ff08 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,4 +1,4 @@
-
+
@@ -6,11 +6,11 @@
-
+
-
+
diff --git a/docs/CI集成说明.md b/docs/CI集成说明.md
index bab17d7..e4ed4fe 100644
--- a/docs/CI集成说明.md
+++ b/docs/CI集成说明.md
@@ -1,4 +1,4 @@
-# 缓存序列化结构检测 — CI 集成说明
+# 序列化结构检测 — CI 集成说明
---
@@ -11,7 +11,7 @@ Gitea Actions 触发
↓
浅克隆业务仓库 tip(depth=1)+ 按需取 push 前 tip(before)
↓
-从 Nexus 下载 cache-schema-checker.jar
+从 Nexus 下载 serialization-schema-checker.jar
↓
java -jar 执行(对比 before → after,累计 diff)
↓
@@ -46,7 +46,7 @@ mode=block 且含任意结构变更 → exit 1(流水线失败)
|----|------|
| Gitea Runner | 标签 `jdk11`,已安装 Java 11 |
| Nexus 私库 | 可访问 `http://192.168.3.25:18081/nexus/repository/maven-releases` |
-| 工具 JAR | `com.codechecker:cache-schema-checker:1.0.0` 已发布 |
+| 工具 JAR | `com.codechecker:serialization-schema-checker:1.0.0` 已发布 |
---
@@ -58,18 +58,18 @@ mode=block 且含任意结构变更 → exit 1(流水线失败)
jnpf-java-cloud/
├── .gitea/
│ ├── workflows/
-│ │ └── cache-schema-check.yaml # 流水线
+│ │ └── serialization-schema-check.yaml # 流水线
│ └── config/
-│ └── cache-schema-check-config.yaml # 检测配置
+│ └── serialization-schema-check-config.yaml # 检测配置
```
-请以本仓库 `.gitea/workflows/cache-schema-check.yaml` 为模板同步到业务仓。
+请以本仓库 `.gitea/workflows/serialization-schema-check.yaml` 为模板同步到业务仓。
---
## 4. 流水线模板(要点)
-完整可运行版本见:`.gitea/workflows/cache-schema-check.yaml`。
+完整可运行版本见:`.gitea/workflows/serialization-schema-check.yaml`。
核心逻辑摘要:
@@ -84,7 +84,7 @@ git fetch --depth 1 origin "$OLD_SHA" # 优先
# 或 git fetch --deepen N # 兜底
# 4) 执行
-java -jar cache-schema-checker-1.0.0.jar \
+java -jar serialization-schema-checker-1.0.0.jar \
--old-sha "$OLD_SHA" \
--new-sha "$NEW_SHA" \
...
@@ -98,7 +98,7 @@ java -jar cache-schema-checker-1.0.0.jar \
|--------|------|------|
| `demo.yaml` (AI代码质量分析) | AI Code Review | 并行,互不影响 |
| `code-check` (CodeChecker) | 通用变更检测 | **同模式**,可并列执行 |
-| `cache-schema-check` | 缓存结构检测 | 新增 |
+| `serialization-schema-check` | 缓存结构检测 | 新增 |
---
@@ -116,9 +116,9 @@ mvn clean deploy -DskipTests
发布产物:
```text
-com/codechecker/cache-schema-checker/1.0.0/
- ├── cache-schema-checker-1.0.0.jar # 可执行 fat-jar
- └── cache-schema-checker-1.0.0.pom
+com/codechecker/serialization-schema-checker/1.0.0/
+ ├── serialization-schema-checker-1.0.0.jar # 可执行 fat-jar
+ └── serialization-schema-checker-1.0.0.pom
```
---
@@ -157,8 +157,8 @@ com/codechecker/cache-schema-checker/1.0.0/
OLD_SHA=$(git rev-parse origin/$(git branch --show-current)~3) # 示例:假设 ahead 3
NEW_SHA=$(git rev-parse HEAD)
-java -jar /path/to/cache-schema-checker-1.0.0.jar \
- --config .gitea/config/cache-schema-check-config.yaml \
+java -jar /path/to/serialization-schema-checker-1.0.0.jar \
+ --config .gitea/config/serialization-schema-check-config.yaml \
--repo-root . \
--old-sha "$OLD_SHA" \
--new-sha "$NEW_SHA" \
diff --git a/docs/MQ序列化结构检测方案.md b/docs/MQ序列化结构检测方案.md
index 7e83fb3..c379ef1 100644
--- a/docs/MQ序列化结构检测方案.md
+++ b/docs/MQ序列化结构检测方案.md
@@ -3,7 +3,7 @@
> 版本:v0.2
> 日期:2026-07-15
> 状态:**方案已落地(含 Kafka),开发未启动**
-> 关联:复用 `cache-schema-checker` 的 Schema 提取、Diff、企微通知与 CI 框架
+> 关联:复用 `serialization-schema-checker` 的 Schema 提取、Diff、企微通知与 CI 框架
> 业务样本仓:`jnpf-java-cloud`(**RocketMQ + Kafka**)
---
@@ -124,7 +124,7 @@ public void handleMessage(String message) {
### 3.1 产品形态
-并入现有 `cache-schema-checker`(或后续更名 `serialization-schema-checker`):
+并入现有 `serialization-schema-checker`:
- 同一 CLI / 流水线 / Schema Diff / 企微模板
- 配置增加 `mq_patterns`(含 RocketMQ + Kafka)
diff --git a/docs/实施方案.md b/docs/实施方案.md
index 05d90ef..d97b515 100644
--- a/docs/实施方案.md
+++ b/docs/实施方案.md
@@ -104,12 +104,12 @@
schemaCheck 仓库
├── 开发 Java 分析工具
├── mvn package 打 fat-jar
- ├── 发布到 Nexus:com.codechecker:cache-schema-checker:{version}
+ ├── 发布到 Nexus:com.codechecker:serialization-schema-checker:{version}
└── 提供默认配置模板
jnpf-java-cloud 仓库
- ├── .gitea/workflows/cache-schema-check.yaml
- ├── .gitea/config/cache-schema-check-config.yaml
+ ├── .gitea/workflows/serialization-schema-check.yaml
+ ├── .gitea/config/serialization-schema-check-config.yaml
└── push 时下载 jar 并执行检测
```
@@ -119,11 +119,11 @@ jnpf-java-cloud 仓库
flowchart TB
subgraph Gitea["Gitea Push Pipeline"]
A[push 事件] --> B[浅克隆 old/new 提交]
- B --> C[下载 cache-schema-checker.jar]
+ B --> C[下载 serialization-schema-checker.jar]
C --> D[java -jar 执行检测]
end
- subgraph Checker["cache-schema-checker (JDK 11)"]
+ subgraph Checker["serialization-schema-checker (JDK 11)"]
D --> E[GitDiffScanner]
E --> F[RedisWritePointDetector]
F --> G[JavaSchemaExtractor]
@@ -196,8 +196,8 @@ schemaCheck/
│ ├── resources/fixtures/{tenant,lock,template}/
│ └── java/...
├── .gitea/
-│ ├── workflows/cache-schema-check.yaml
-│ └── config/cache-schema-check-config.yaml
+│ ├── workflows/serialization-schema-check.yaml
+│ └── config/serialization-schema-check-config.yaml
└── target/ # 构建产物
```
@@ -205,11 +205,11 @@ schemaCheck/
```xml
com.codechecker
-cache-schema-checker
+serialization-schema-checker
1.0.0
```
-打包为 **shaded/fat jar**,主类:`com.codechecker.cache.cli.CacheSchemaCheckerMain`
+打包为 **shaded/fat jar**,主类:`com.codechecker.cache.cli.SerializationSchemaCheckerMain`
---
@@ -218,8 +218,8 @@ schemaCheck/
### 6.1 CLI 参数
```bash
-java -jar cache-schema-checker-1.0.0.jar \
- --config .gitea/config/cache-schema-check-config.yaml \
+java -jar serialization-schema-checker-1.0.0.jar \
+ --config .gitea/config/serialization-schema-check-config.yaml \
--repo-root /path/to/jnpf-java-cloud \
--old-sha abc123 \
--new-sha def456 \
@@ -256,7 +256,7 @@ java -jar cache-schema-checker-1.0.0.jar \
#### Step 1:加载配置
-读取 `cache-schema-check-config.yaml`,合并默认值(见 `docs/配置说明.md`)。
+读取 `serialization-schema-check-config.yaml`,合并默认值(见 `docs/配置说明.md`)。
#### Step 2:Git Diff 扫描
@@ -444,15 +444,15 @@ manual_mappings:
| 层级 | 位置 | 职责 |
|------|------|------|
| 默认配置 | 工具 jar 内 `default-config.yaml` | 检测模式、忽略规则等默认值 |
-| 业务覆盖 | `jnpf-java-cloud/.gitea/config/cache-schema-check-config.yaml` | mode、notify、include_modules、manual_mappings |
+| 业务覆盖 | `jnpf-java-cloud/.gitea/config/serialization-schema-check-config.yaml` | mode、notify、include_modules、manual_mappings |
合并规则:**业务配置覆盖默认配置**,未声明的项沿用默认值。
CLI 调用:
```bash
-java -jar cache-schema-checker.jar \
- --config .gitea/config/cache-schema-check-config.yaml \
+java -jar serialization-schema-checker.jar \
+ --config .gitea/config/serialization-schema-check-config.yaml \
...
```
@@ -482,13 +482,13 @@ notify:
详见 `docs/CI集成说明.md`。核心流程:
```yaml
-# jnpf-java-cloud/.gitea/workflows/cache-schema-check.yaml(要点)
+# jnpf-java-cloud/.gitea/workflows/serialization-schema-check.yaml(要点)
# 检出:浅克隆 tip(depth 1)
# 检测:--old-sha = gitea.event.before,--new-sha = gitea.sha
# 按需 fetch before 提交对象,覆盖一次 push 的多 commit 累计 diff
```
-完整模板见 `docs/CI集成说明.md` / `.gitea/workflows/cache-schema-check.yaml`。
+完整模板见 `docs/CI集成说明.md` / `.gitea/workflows/serialization-schema-check.yaml`。
---
@@ -600,7 +600,7 @@ notify:
| # | 决策项 | 结论 |
|---|--------|------|
| 1 | 阻断范围 | `block` 模式下 **任意结构变更均阻断**(exit 1) |
-| 2 | 发布坐标 | 独立产物 `com.codechecker:cache-schema-checker:1.0.0` |
+| 2 | 发布坐标 | 独立产物 `com.codechecker:serialization-schema-checker:1.0.0` |
| 3 | 配置归属 | **双层配置**:jar 内 `default-config.yaml` + 业务仓覆盖合并 |
| 4 | 上线策略 | 先 `notify` ,稳定后手动切 `block` |
| 5 | 检测范围 | **仅 `src/main/java`**,不扫描测试代码 |
diff --git a/docs/配置说明.md b/docs/配置说明.md
index 922069f..7e44812 100644
--- a/docs/配置说明.md
+++ b/docs/配置说明.md
@@ -1,8 +1,8 @@
-# 缓存序列化结构检测 — 配置说明
+# 序列化结构检测 — 配置说明
-> **双层配置**:工具 jar 内置 `default-config.yaml`(默认) + 业务仓库 `.gitea/config/cache-schema-check-config.yaml`(覆盖)
-> 工具坐标:`com.codechecker:cache-schema-checker:1.0.0`
-> 主类:`com.codechecker.cache.cli.CacheSchemaCheckerMain`
+> **双层配置**:工具 jar 内置 `default-config.yaml`(默认) + 业务仓库 `.gitea/config/serialization-schema-check-config.yaml`(覆盖)
+> 工具坐标:`com.codechecker:serialization-schema-checker:1.0.0`
+> 主类:`com.codechecker.cache.cli.SerializationSchemaCheckerMain`
---
@@ -11,7 +11,7 @@
```text
jar 内 default-config.yaml(工具仓维护)
↓ 深度合并
-业务仓 cache-schema-check-config.yaml(业务仓维护)
+业务仓 serialization-schema-check-config.yaml(业务仓维护)
↓
最终生效配置
```
@@ -23,7 +23,7 @@ jar 内 default-config.yaml(工具仓维护)
### 1.1 业务仓最小配置示例
```yaml
-# jnpf-java-cloud/.gitea/config/cache-schema-check-config.yaml
+# jnpf-java-cloud/.gitea/config/serialization-schema-check-config.yaml
enabled: true
mode: notify
@@ -78,7 +78,7 @@ notify:
# 无变更时是否也发通知(一般 false)
notify_on_clean: false
# 消息标题前缀
- title_prefix: "[缓存结构变更]"
+ title_prefix: "[序列化结构变更]"
# 忽略规则
ignore:
@@ -182,7 +182,7 @@ mode: block
| `webhook_url` | string | `""` | 企微机器人 Webhook 完整 URL(优先) |
| `webhook_env` | string | — | 兼容旧字段;值为 `http` 开头时当作 URL |
| `notify_on_clean` | boolean | false | 无变更时是否通知 |
-| `title_prefix` | string | [缓存结构变更] | 消息标题前缀 |
+| `title_prefix` | string | [序列化结构变更] | 消息标题前缀 |
### 3.4 ignore.key_patterns
@@ -299,7 +299,7 @@ suppressions:
### 5.3 示例(已解析 key)
```markdown
-## [缓存结构变更] jnpf-java-cloud
+## [序列化结构变更] jnpf-java-cloud
> **分支**: code/redis_change_detection_v1.0
> **提交**: cedd161c → 67c8a6eb
diff --git a/pom.xml b/pom.xml
index 49c417e..f49a607 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,12 +5,12 @@
4.0.0
com.codechecker
- cache-schema-checker
+ serialization-schema-checker
1.0.0
jar
- cache-schema-checker
- 基于 JavaParser 的缓存 value 序列化结构变更检测器
+ serialization-schema-checker
+ 基于 JavaParser 的缓存/MQ value 序列化结构变更检测器
11
@@ -74,7 +74,7 @@
- cache-schema-checker-${project.version}
+ serialization-schema-checker-${project.version}
org.apache.maven.plugins
@@ -101,7 +101,7 @@
- com.codechecker.cache.cli.CacheSchemaCheckerMain
+ com.codechecker.cache.cli.SerializationSchemaCheckerMain
diff --git a/src/main/java/com/codechecker/cache/cli/CacheSchemaCheckerMain.java b/src/main/java/com/codechecker/cache/cli/SerializationSchemaCheckerMain.java
similarity index 78%
rename from src/main/java/com/codechecker/cache/cli/CacheSchemaCheckerMain.java
rename to src/main/java/com/codechecker/cache/cli/SerializationSchemaCheckerMain.java
index 60ab7d7..5f9c384 100644
--- a/src/main/java/com/codechecker/cache/cli/CacheSchemaCheckerMain.java
+++ b/src/main/java/com/codechecker/cache/cli/SerializationSchemaCheckerMain.java
@@ -17,11 +17,11 @@ import java.util.concurrent.Callable;
/**
* 命令行入口。退出码:0 通过 / 1 阻断 / 2 执行错误。
*/
-@Command(name = "cache-schema-checker",
+@Command(name = "serialization-schema-checker",
mixinStandardHelpOptions = true,
- version = "cache-schema-checker 1.0.0",
- description = "检测两次提交间缓存 value 序列化结构变更并通过企微机器人通知。")
-public class CacheSchemaCheckerMain implements Callable {
+ version = "serialization-schema-checker 1.0.0",
+ description = "检测两次提交间缓存/MQ 等 value 序列化结构变更并通过企微机器人通知。")
+public class SerializationSchemaCheckerMain implements Callable {
@Option(names = "--config", required = true, description = "业务仓库检测配置文件路径")
private Path configPath;
@@ -56,12 +56,12 @@ public class CacheSchemaCheckerMain implements Callable {
CheckerConfig config = ConfigLoader.load(configPath);
if (!config.isEnabled()) {
- System.out.println("[cache-schema-checker] 总开关 enabled=false,跳过检测。");
+ System.out.println("[serialization-schema-checker] 总开关 enabled=false,跳过检测。");
return 0;
}
if (oldSha == null || oldSha.trim().isEmpty()) {
- System.out.println("[cache-schema-checker] 无对比基准提交,跳过检测。");
+ System.out.println("[serialization-schema-checker] 无对比基准提交,跳过检测。");
return 0;
}
@@ -75,7 +75,6 @@ public class CacheSchemaCheckerMain implements Callable {
report.setRepository(repository != null ? repository : root.getFileName().toString());
ReportBuilder builder = new ReportBuilder(config.getNotify().getTitlePrefix());
- // CI:字段明细 + 完整企微 Markdown
System.out.println(builder.toConsole(report));
boolean shouldNotify = config.getNotify().isEnabled()
@@ -84,24 +83,24 @@ public class CacheSchemaCheckerMain implements Callable {
String webhook = config.getNotify().getWebhookUrl();
List messages = builder.toWeComMessages(report);
int ok = new WeComNotifier().sendMarkdownMessages(webhook, messages);
- System.out.println("[cache-schema-checker] 企微通知发送: "
+ System.out.println("[serialization-schema-checker] 企微通知发送: "
+ ok + "/" + messages.size()
+ (messages.size() > 1 ? "(已按 key 拆分)" : ""));
}
if (report.isBlocked()) {
- System.out.println("[cache-schema-checker] block 模式命中,流水线将被阻断(exit 1)。");
+ System.out.println("[serialization-schema-checker] block 模式命中,流水线将被阻断(exit 1)。");
}
return report.getExitCode();
} catch (Exception e) {
- System.err.println("[cache-schema-checker] 执行错误: " + e.getMessage());
+ System.err.println("[serialization-schema-checker] 执行错误: " + e.getMessage());
e.printStackTrace();
return 2;
}
}
public static void main(String[] args) {
- int exitCode = new CommandLine(new CacheSchemaCheckerMain()).execute(args);
+ int exitCode = new CommandLine(new SerializationSchemaCheckerMain()).execute(args);
System.exit(exitCode);
}
}
diff --git a/src/main/java/com/codechecker/cache/config/CheckerConfig.java b/src/main/java/com/codechecker/cache/config/CheckerConfig.java
index 3390560..dae4665 100644
--- a/src/main/java/com/codechecker/cache/config/CheckerConfig.java
+++ b/src/main/java/com/codechecker/cache/config/CheckerConfig.java
@@ -41,7 +41,7 @@ public class CheckerConfig {
/** 企微机器人 Webhook 完整 URL */
private String webhookUrl = "";
private boolean notifyOnClean = false;
- private String titlePrefix = "[缓存结构变更]";
+ private String titlePrefix = "[序列化结构变更]";
public boolean isEnabled() {
return enabled;
diff --git a/src/main/java/com/codechecker/cache/config/ConfigLoader.java b/src/main/java/com/codechecker/cache/config/ConfigLoader.java
index 8029ce3..0eb813c 100644
--- a/src/main/java/com/codechecker/cache/config/ConfigLoader.java
+++ b/src/main/java/com/codechecker/cache/config/ConfigLoader.java
@@ -87,7 +87,7 @@ public final class ConfigLoader {
n.setEnabled(bool(notify, "enabled", true));
n.setWebhookUrl(resolveWebhookUrl(notify));
n.setNotifyOnClean(bool(notify, "notify_on_clean", false));
- n.setTitlePrefix(str(notify, "title_prefix", "[缓存结构变更]"));
+ n.setTitlePrefix(str(notify, "title_prefix", "[序列化结构变更]"));
Map ignore = asMap(map.get("ignore"));
CheckerConfig.Ignore ig = config.getIgnore();
diff --git a/src/main/java/com/codechecker/cache/report/ReportBuilder.java b/src/main/java/com/codechecker/cache/report/ReportBuilder.java
index 7317cb2..eedfff8 100644
--- a/src/main/java/com/codechecker/cache/report/ReportBuilder.java
+++ b/src/main/java/com/codechecker/cache/report/ReportBuilder.java
@@ -28,7 +28,7 @@ public class ReportBuilder {
private final String titlePrefix;
public ReportBuilder(String titlePrefix) {
- this.titlePrefix = titlePrefix == null ? "[缓存结构变更]" : titlePrefix;
+ this.titlePrefix = titlePrefix == null ? "[序列化结构变更]" : titlePrefix;
}
/**
@@ -63,7 +63,7 @@ public class ReportBuilder {
String header = buildHeader(report);
List bodies = buildKeyBodies(report);
if (bodies.isEmpty()) {
- return Collections.singletonList(header + "未检测到缓存序列化结构变更。\n");
+ return Collections.singletonList(header + "未检测到序列化结构变更。\n");
}
StringBuilder combined = new StringBuilder(header);
@@ -182,7 +182,7 @@ public class ReportBuilder {
public String toConsole(CheckReport report) {
StringBuilder sb = new StringBuilder();
if (!report.hasChanges()) {
- sb.append("未检测到缓存序列化结构变更。\n");
+ sb.append("未检测到序列化结构变更。\n");
return sb.toString();
}
diff --git a/src/main/resources/default-config.yaml b/src/main/resources/default-config.yaml
index 9e156e7..9e16dc2 100644
--- a/src/main/resources/default-config.yaml
+++ b/src/main/resources/default-config.yaml
@@ -1,4 +1,4 @@
-# cache-schema-checker 内置默认配置
+# serialization-schema-checker 内置默认配置
# 业务仓库通过 --config 指定的配置会与本文件深度合并(业务配置优先)。
# 总开关:false 时不执行检测、不发通知、流水线直接通过
@@ -19,7 +19,7 @@ notify:
enabled: true
webhook_url: ""
notify_on_clean: false
- title_prefix: "[缓存结构变更]"
+ title_prefix: "[序列化结构变更]"
# 忽略规则
ignore:
diff --git a/src/test/java/com/codechecker/cache/report/ReportBuilderTest.java b/src/test/java/com/codechecker/cache/report/ReportBuilderTest.java
index 49daf99..41ebfee 100644
--- a/src/test/java/com/codechecker/cache/report/ReportBuilderTest.java
+++ b/src/test/java/com/codechecker/cache/report/ReportBuilderTest.java
@@ -56,7 +56,7 @@ class ReportBuilderTest {
key.getFieldDetails().add(addedErr);
report.getKeyChanges().add(key);
- String md = new ReportBuilder("[缓存结构变更]").toMarkdown(report);
+ String md = new ReportBuilder("[序列化结构变更]").toMarkdown(report);
assertTrue(md.contains("- Key --> `saas:period-config:migration:current`"));
assertFalse(md.contains("(key 无法解析)"));
@@ -133,7 +133,7 @@ class ReportBuilderTest {
key.getFieldDetails().add(detail);
report.getKeyChanges().add(key);
- String console = new ReportBuilder("[缓存结构变更]").toConsole(report);
+ String console = new ReportBuilder("[序列化结构变更]").toConsole(report);
assertTrue(console.contains("======== 字段明细 ========"));
assertTrue(console.contains("**删除字段**: x"));
assertTrue(console.contains("\"x\":\"\""));
@@ -161,7 +161,7 @@ class ReportBuilderTest {
key.getFieldDetails().add(added);
report.getKeyChanges().add(key);
- String md = new ReportBuilder("[缓存结构变更]").toMarkdown(report);
+ String md = new ReportBuilder("[序列化结构变更]").toMarkdown(report);
assertTrue(md.contains("- Key --> `req.getKey()` (key 无法解析)"));
assertTrue(md.contains("> **位置**: `ClockInXxxService#export:128`"));
assertTrue(md.contains("> **类型**: `List`"));
@@ -185,7 +185,7 @@ class ReportBuilderTest {
report.getKeyChanges().add(simpleKey("k-a", "{\"a\":\"\"}", "{\"a\":\"\",\"x\":\"\"}", "x"));
report.getKeyChanges().add(simpleKey("k-b", "{\"b\":\"\"}", "{\"b\":\"\",\"y\":\"\"}", "y"));
- List messages = new ReportBuilder("[缓存结构变更]").toWeComMessages(report);
+ List messages = new ReportBuilder("[序列化结构变更]").toWeComMessages(report);
assertEquals(1, messages.size());
assertTrue(messages.get(0).contains("k-a"));
assertTrue(messages.get(0).contains("k-b"));
@@ -200,7 +200,7 @@ class ReportBuilderTest {
report.getKeyChanges().add(simpleKey("fat-key-1", fat, fat + "1", null));
report.getKeyChanges().add(simpleKey("fat-key-2", fat, fat + "2", null));
- List messages = new ReportBuilder("[缓存结构变更]").toWeComMessages(report);
+ List messages = new ReportBuilder("[序列化结构变更]").toWeComMessages(report);
assertEquals(2, messages.size(), "超长应按 key 拆成 2 条");
assertTrue(messages.get(0).contains("fat-key-1"));
assertFalse(messages.get(0).contains("fat-key-2"));
@@ -209,10 +209,10 @@ class ReportBuilderTest {
assertTrue(ReportBuilder.utf8Bytes(messages.get(0)) <= ReportBuilder.WECOM_MARKDOWN_MAX_BYTES);
assertTrue(ReportBuilder.utf8Bytes(messages.get(1)) <= ReportBuilder.WECOM_MARKDOWN_MAX_BYTES);
// 抬头在每条中重复
- assertTrue(messages.get(0).contains("## [缓存结构变更] jnpf-java-cloud"));
- assertTrue(messages.get(1).contains("## [缓存结构变更] jnpf-java-cloud"));
+ assertTrue(messages.get(0).contains("## [序列化结构变更] jnpf-java-cloud"));
+ assertTrue(messages.get(1).contains("## [序列化结构变更] jnpf-java-cloud"));
- String console = new ReportBuilder("[缓存结构变更]").toConsole(report);
+ String console = new ReportBuilder("[序列化结构变更]").toConsole(report);
assertTrue(console.contains("超长已按 key 拆为 2 条"));
}