diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 7bf28e0..8c50bf8 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -6,8 +6,11 @@ - + + + + \ No newline at end of file diff --git a/docs/CI集成说明.md b/docs/CI集成说明.md index f827004..7f6421c 100644 --- a/docs/CI集成说明.md +++ b/docs/CI集成说明.md @@ -147,11 +147,11 @@ jobs: ## 6. 工具发布流程(redisCheck 仓库) ```bash -# 在 redisCheck 仓库 +# 在 redisCheck 仓库根目录 mvn clean package -DskipTests -# 发布到 Nexus(需配置 settings.xml) -mvn deploy -DskipTests +# 发布到 Nexus(需配置 settings.xml,并开启 deploy-nexus profile) +mvn clean deploy -Dnexus.deploy.enabled=true -DskipTests ``` 发布产物: diff --git a/docs/实施方案.md b/docs/实施方案.md index e8f44b9..232118d 100644 --- a/docs/实施方案.md +++ b/docs/实施方案.md @@ -171,57 +171,33 @@ flowchart TB ```text redisCheck/ -├── pom.xml +├── pom.xml # 单模块工程(无父子结构) ├── docs/ -│ ├── 实施方案.md # 本文档 -│ ├── 配置说明.md # YAML 配置项详解 -│ └── CI集成说明.md # 业务仓库接入步骤 -├── redis-schema-checker/ -│ ├── pom.xml -│ └── src/ -│ ├── main/ -│ │ ├── resources/ -│ │ │ └── default-config.yaml # 内置默认配置(随 jar 发布) -│ │ └── java/com/codechecker/redis/ -│ │ ├── cli/ # 命令行入口 -│ │ │ └── RedisSchemaCheckerMain.java -│ │ ├── config/ # 配置模型 -│ │ │ ├── CheckerConfig.java -│ │ │ └── ConfigLoader.java -│ │ ├── git/ # Git 操作 -│ │ │ ├── GitDiffScanner.java -│ │ │ └── GitException.java -│ │ ├── analyze/ # 编排与工作树扫描 -│ │ │ ├── SchemaCheckAnalyzer.java -│ │ │ ├── FileScanner.java -│ │ │ └── GlobMatcher.java -│ │ ├── detector/ # Redis 写入点检测 -│ │ │ ├── RedisWritePointDetector.java -│ │ │ └── WritePoint.java -│ │ ├── schema/ # Schema 提取 -│ │ │ ├── JavaSchemaExtractor.java -│ │ │ ├── SourceIndex.java -│ │ │ ├── TypeSchema.java -│ │ │ ├── FieldSchema.java -│ │ │ ├── JsonType.java -│ │ │ └── AnnotationSupport.java -│ │ ├── diff/ # 结构对比 -│ │ │ ├── SchemaDiffer.java -│ │ │ ├── SchemaChange.java -│ │ │ ├── ChangeType.java -│ │ │ └── Severity.java -│ │ ├── key/ # Key 推断 -│ │ │ └── RedisKeyResolver.java -│ │ ├── report/ # 报告 -│ │ │ ├── ReportBuilder.java -│ │ │ └── CheckReport.java -│ │ └── notify/ # 企微通知 -│ │ └── WeComNotifier.java -│ └── test/ -│ ├── resources/fixtures/tenant/ # 夹具:TenantVO/Helper 新旧版本 -│ └── java/... # 各模块单测 -└── .gitea/ - └── demo.yaml # 工具自身 CI(可选) +│ ├── 实施方案.md +│ ├── 配置说明.md +│ └── CI集成说明.md +├── src/ +│ ├── main/ +│ │ ├── resources/ +│ │ │ └── default-config.yaml # 内置默认配置(随 jar 发布) +│ │ └── java/com/codechecker/redis/ +│ │ ├── cli/ # 命令行入口 +│ │ ├── config/ # 配置模型 +│ │ ├── git/ # Git 操作 +│ │ ├── analyze/ # 编排与工作树扫描 +│ │ ├── detector/ # Redis 写入点检测 +│ │ ├── schema/ # Schema 提取 +│ │ ├── diff/ # 结构对比 +│ │ ├── key/ # Key 推断 +│ │ ├── report/ # 报告 +│ │ └── notify/ # 企微通知 +│ └── test/ +│ ├── resources/fixtures/tenant/ +│ └── java/... +├── .gitea/ +│ ├── workflows/redis-schema-check.yaml +│ └── config/redis-schema-check-config.yaml +└── target/ # 构建产物 ``` ### 5.1 Maven 坐标 diff --git a/pom.xml b/pom.xml index e0b42b6..363144d 100644 --- a/pom.xml +++ b/pom.xml @@ -5,16 +5,12 @@ 4.0.0 com.codechecker - redis-schema-checker-parent + redis-schema-checker 1.0.0-SNAPSHOT - pom + jar - redis-schema-checker-parent - Redis 序列化结构变更检测工具(父工程) - - - redis-schema-checker - + redis-schema-checker + 基于 JavaParser 的 Redis value 序列化结构变更检测器 11 @@ -27,5 +23,132 @@ 4.7.5 5.10.2 3.5.1 + + + false + + fantaibao-fantaibao-maven-repository + + http://192.168.3.25:18081/nexus/repository/maven-releases/ + ${nexus.repository.url} + + + + com.github.javaparser + javaparser-symbol-solver-core + ${javaparser.version} + + + + org.yaml + snakeyaml + ${snakeyaml.version} + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + + info.picocli + picocli + ${picocli.version} + + + + org.junit.jupiter + junit-jupiter + ${junit.version} + test + + + + + + deploy-nexus + + + nexus.deploy.enabled + true + + + + + ${nexus.repository.id} + ${nexus.repository.url} + + + ${nexus.repository.id} + ${nexus.snapshots.repository.url} + + + + + + org.apache.maven.plugins + maven-deploy-plugin + 3.1.2 + + + deploy-to-nexus + package + + deploy + + + + + + + + + + + redis-schema-checker-${project.version} + + + org.apache.maven.plugins + maven-surefire-plugin + 3.2.5 + + + org.apache.maven.plugins + maven-shade-plugin + ${maven.shade.version} + + + package + + shade + + + false + + + com.codechecker.redis.cli.RedisSchemaCheckerMain + + + + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + module-info.class + + + + + + + + + diff --git a/redis-schema-checker/pom.xml b/redis-schema-checker/pom.xml deleted file mode 100644 index 40f293f..0000000 --- a/redis-schema-checker/pom.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - 4.0.0 - - - com.codechecker - redis-schema-checker-parent - 1.0.0-SNAPSHOT - - - redis-schema-checker - jar - - redis-schema-checker - 基于 JavaParser 的 Redis value 序列化结构变更检测器 - - - - com.github.javaparser - javaparser-symbol-solver-core - ${javaparser.version} - - - - org.yaml - snakeyaml - ${snakeyaml.version} - - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - - info.picocli - picocli - ${picocli.version} - - - - org.junit.jupiter - junit-jupiter - ${junit.version} - test - - - - - redis-schema-checker-${project.version} - - - org.apache.maven.plugins - maven-surefire-plugin - 3.2.5 - - - org.apache.maven.plugins - maven-shade-plugin - ${maven.shade.version} - - - package - - shade - - - false - - - com.codechecker.redis.cli.RedisSchemaCheckerMain - - - - - - *:* - - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - module-info.class - - - - - - - - - - diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/analyze/FileScanner.java b/src/main/java/com/codechecker/redis/analyze/FileScanner.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/analyze/FileScanner.java rename to src/main/java/com/codechecker/redis/analyze/FileScanner.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/analyze/GlobMatcher.java b/src/main/java/com/codechecker/redis/analyze/GlobMatcher.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/analyze/GlobMatcher.java rename to src/main/java/com/codechecker/redis/analyze/GlobMatcher.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/analyze/SchemaCheckAnalyzer.java b/src/main/java/com/codechecker/redis/analyze/SchemaCheckAnalyzer.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/analyze/SchemaCheckAnalyzer.java rename to src/main/java/com/codechecker/redis/analyze/SchemaCheckAnalyzer.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/cli/RedisSchemaCheckerMain.java b/src/main/java/com/codechecker/redis/cli/RedisSchemaCheckerMain.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/cli/RedisSchemaCheckerMain.java rename to src/main/java/com/codechecker/redis/cli/RedisSchemaCheckerMain.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/config/CheckerConfig.java b/src/main/java/com/codechecker/redis/config/CheckerConfig.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/config/CheckerConfig.java rename to src/main/java/com/codechecker/redis/config/CheckerConfig.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/config/ConfigLoader.java b/src/main/java/com/codechecker/redis/config/ConfigLoader.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/config/ConfigLoader.java rename to src/main/java/com/codechecker/redis/config/ConfigLoader.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/detector/RedisWritePointDetector.java b/src/main/java/com/codechecker/redis/detector/RedisWritePointDetector.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/detector/RedisWritePointDetector.java rename to src/main/java/com/codechecker/redis/detector/RedisWritePointDetector.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/detector/WritePoint.java b/src/main/java/com/codechecker/redis/detector/WritePoint.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/detector/WritePoint.java rename to src/main/java/com/codechecker/redis/detector/WritePoint.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/diff/ChangeType.java b/src/main/java/com/codechecker/redis/diff/ChangeType.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/diff/ChangeType.java rename to src/main/java/com/codechecker/redis/diff/ChangeType.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/diff/SchemaChange.java b/src/main/java/com/codechecker/redis/diff/SchemaChange.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/diff/SchemaChange.java rename to src/main/java/com/codechecker/redis/diff/SchemaChange.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/diff/SchemaDiffer.java b/src/main/java/com/codechecker/redis/diff/SchemaDiffer.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/diff/SchemaDiffer.java rename to src/main/java/com/codechecker/redis/diff/SchemaDiffer.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/diff/Severity.java b/src/main/java/com/codechecker/redis/diff/Severity.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/diff/Severity.java rename to src/main/java/com/codechecker/redis/diff/Severity.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/git/GitDiffScanner.java b/src/main/java/com/codechecker/redis/git/GitDiffScanner.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/git/GitDiffScanner.java rename to src/main/java/com/codechecker/redis/git/GitDiffScanner.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/git/GitException.java b/src/main/java/com/codechecker/redis/git/GitException.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/git/GitException.java rename to src/main/java/com/codechecker/redis/git/GitException.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/key/RedisKeyResolver.java b/src/main/java/com/codechecker/redis/key/RedisKeyResolver.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/key/RedisKeyResolver.java rename to src/main/java/com/codechecker/redis/key/RedisKeyResolver.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/notify/WeComNotifier.java b/src/main/java/com/codechecker/redis/notify/WeComNotifier.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/notify/WeComNotifier.java rename to src/main/java/com/codechecker/redis/notify/WeComNotifier.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/report/CheckReport.java b/src/main/java/com/codechecker/redis/report/CheckReport.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/report/CheckReport.java rename to src/main/java/com/codechecker/redis/report/CheckReport.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/report/ReportBuilder.java b/src/main/java/com/codechecker/redis/report/ReportBuilder.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/report/ReportBuilder.java rename to src/main/java/com/codechecker/redis/report/ReportBuilder.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/schema/AnnotationSupport.java b/src/main/java/com/codechecker/redis/schema/AnnotationSupport.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/schema/AnnotationSupport.java rename to src/main/java/com/codechecker/redis/schema/AnnotationSupport.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/schema/FieldSchema.java b/src/main/java/com/codechecker/redis/schema/FieldSchema.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/schema/FieldSchema.java rename to src/main/java/com/codechecker/redis/schema/FieldSchema.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/schema/JavaSchemaExtractor.java b/src/main/java/com/codechecker/redis/schema/JavaSchemaExtractor.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/schema/JavaSchemaExtractor.java rename to src/main/java/com/codechecker/redis/schema/JavaSchemaExtractor.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/schema/JsonType.java b/src/main/java/com/codechecker/redis/schema/JsonType.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/schema/JsonType.java rename to src/main/java/com/codechecker/redis/schema/JsonType.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/schema/SourceIndex.java b/src/main/java/com/codechecker/redis/schema/SourceIndex.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/schema/SourceIndex.java rename to src/main/java/com/codechecker/redis/schema/SourceIndex.java diff --git a/redis-schema-checker/src/main/java/com/codechecker/redis/schema/TypeSchema.java b/src/main/java/com/codechecker/redis/schema/TypeSchema.java similarity index 100% rename from redis-schema-checker/src/main/java/com/codechecker/redis/schema/TypeSchema.java rename to src/main/java/com/codechecker/redis/schema/TypeSchema.java diff --git a/redis-schema-checker/src/main/resources/default-config.yaml b/src/main/resources/default-config.yaml similarity index 100% rename from redis-schema-checker/src/main/resources/default-config.yaml rename to src/main/resources/default-config.yaml diff --git a/redis-schema-checker/src/test/java/com/codechecker/redis/TenantScenarioTest.java b/src/test/java/com/codechecker/redis/TenantScenarioTest.java similarity index 100% rename from redis-schema-checker/src/test/java/com/codechecker/redis/TenantScenarioTest.java rename to src/test/java/com/codechecker/redis/TenantScenarioTest.java diff --git a/redis-schema-checker/src/test/java/com/codechecker/redis/TestSupport.java b/src/test/java/com/codechecker/redis/TestSupport.java similarity index 100% rename from redis-schema-checker/src/test/java/com/codechecker/redis/TestSupport.java rename to src/test/java/com/codechecker/redis/TestSupport.java diff --git a/redis-schema-checker/src/test/java/com/codechecker/redis/analyze/GlobMatcherTest.java b/src/test/java/com/codechecker/redis/analyze/GlobMatcherTest.java similarity index 100% rename from redis-schema-checker/src/test/java/com/codechecker/redis/analyze/GlobMatcherTest.java rename to src/test/java/com/codechecker/redis/analyze/GlobMatcherTest.java diff --git a/redis-schema-checker/src/test/java/com/codechecker/redis/config/ConfigLoaderTest.java b/src/test/java/com/codechecker/redis/config/ConfigLoaderTest.java similarity index 100% rename from redis-schema-checker/src/test/java/com/codechecker/redis/config/ConfigLoaderTest.java rename to src/test/java/com/codechecker/redis/config/ConfigLoaderTest.java diff --git a/redis-schema-checker/src/test/java/com/codechecker/redis/diff/SchemaDifferTest.java b/src/test/java/com/codechecker/redis/diff/SchemaDifferTest.java similarity index 100% rename from redis-schema-checker/src/test/java/com/codechecker/redis/diff/SchemaDifferTest.java rename to src/test/java/com/codechecker/redis/diff/SchemaDifferTest.java diff --git a/redis-schema-checker/src/test/resources/fixtures/tenant/HelperNew.txt b/src/test/resources/fixtures/tenant/HelperNew.txt similarity index 100% rename from redis-schema-checker/src/test/resources/fixtures/tenant/HelperNew.txt rename to src/test/resources/fixtures/tenant/HelperNew.txt diff --git a/redis-schema-checker/src/test/resources/fixtures/tenant/HelperOld.txt b/src/test/resources/fixtures/tenant/HelperOld.txt similarity index 100% rename from redis-schema-checker/src/test/resources/fixtures/tenant/HelperOld.txt rename to src/test/resources/fixtures/tenant/HelperOld.txt diff --git a/redis-schema-checker/src/test/resources/fixtures/tenant/TenantLinkModel.txt b/src/test/resources/fixtures/tenant/TenantLinkModel.txt similarity index 100% rename from redis-schema-checker/src/test/resources/fixtures/tenant/TenantLinkModel.txt rename to src/test/resources/fixtures/tenant/TenantLinkModel.txt diff --git a/redis-schema-checker/src/test/resources/fixtures/tenant/TenantVO.txt b/src/test/resources/fixtures/tenant/TenantVO.txt similarity index 100% rename from redis-schema-checker/src/test/resources/fixtures/tenant/TenantVO.txt rename to src/test/resources/fixtures/tenant/TenantVO.txt