Track maven-cloudwalk-cloud, maven-cw-elevator-application, maven-intelligent-cwoscomponent, maven-ninca-crk, maven-ninca-qk-alarm, and docs/. Other workspace paths ignored via .gitignore. Made-with: Cursor
12 KiB
Maven 聚合工程说明(反编译工作区)
适用范围:本仓库根目录下五个以
maven-为前缀的 Maven Reactor(聚合父工程),由反编译产物整理而来,用于本地编译、走查与增量修改。
不适用范围:各工程依赖的大量 NINCA / 云从内部 JAR 仍须通过 Nexus 等私服解析,本文仅描述本仓库内可见的模块边界与协作关系。
1. 文档目的
- 说明五个聚合工程各自的 业务定位、子模块划分、技术栈选型原因。
- 说明工程之间的 Maven 依赖与调用链上的协作(与
docs/business/中接口走查互补:本文偏「工程与构件」,走查文档偏「接口与数据流」)。 - 说明
maven-*目录与artifacts/decompiled/、运行包目录cw-elevator-application-V1.0.0.20211103/的分工,避免混淆「可改源码树」与「仅对照归档」。
2. 五工程一览
| 仓库目录 | 聚合 artifactId(父 POM) | groupId |
版本(父 POM) | 子模块(modules) |
|---|---|---|---|---|
maven-cloudwalk-cloud/ |
cloudwalk-cloud-decompiled-reactor |
cn.cloudwalk.cloud |
3.7.2-Brussels-SRX |
cloudwalk-cloud-common、cloudwalk-common-event、cloudwalk-common-service |
maven-cw-elevator-application/ |
cw-elevator-application-decompiled-reactor |
cn.cloudwalk.elevator |
1.0-SNAPSHOT |
cw-elevator-application-common、data、service、web |
maven-intelligent-cwoscomponent/ |
intelligent-cwoscomponent-decompiled-reactor |
cn.cloudwalk.intelligent |
2.9.2-xinghewan |
intelligent-cwoscomponent-parent、interface、rest |
maven-ninca-crk/ |
ninca-crk-decompiled-reactor |
cn.cloudwalk.ninca |
1.0.0 |
ninca-crk-gpu-std |
maven-ninca-qk-alarm/ |
ninca-qk-alarm-decompiled-reactor |
cn.cloudwalk.ninca |
0.0.2-SNAPSHOT |
ninca-qk-alarm-app-starter(其下再含 web / interface 等子模块) |
3. 各工程详细说明
3.1 maven-cloudwalk-cloud — 云从公共云底座(事件与服务)
定位
聚合 CloudWalk 内部通用能力:消息与事件封装(cloudwalk-common-event)、通用服务侧抽象与实现(cloudwalk-common-service)。电梯应用、智能组件等上层工程普遍依赖这里的 CloudwalkResult、Feign 封装、事件注解 等构件。
为何存在「cloudwalk-cloud-common」子模块
反编译得到的子 JAR 原 parent 指向 cloudwalk-cloud-common,而原始父 POM 在工作区中缺失。本聚合工程增加 cloudwalk-cloud-common 模块,使子模块能 先 install 到本地 ~/.m2,满足其它构件对「父 POM 坐标」的解析,同时由本 reactor 继承 Spring Boot,统一 Spring Cloud Greenwich 与内部版本属性(如 cwos-sdk-event 与 V1 运行包 lib 对齐的说明见父 pom.xml 注释)。
技术栈摘要
- Spring Boot 2.1.x(与父 POM 声明一致)
- Spring Cloud Greenwich(
spring-cloud-dependenciesimport) - Java 1.8
与其它工程关系
被 maven-cw-elevator-application、maven-intelligent-cwoscomponent、maven-ninca-crk 等通过 dependencyManagement 或直连依赖引用 cloudwalk-common-event / cloudwalk-common-service 等坐标。
3.2 maven-cw-elevator-application — 电梯 / ACS 通行应用
定位
电梯与门禁派梯相关业务应用:人员通行规则(含访客 add/visitor)、设备、区域/空间 Feign、乘梯记录、MQTT 等。对应运行环境中常部署的 elevator-app 一类服务;业务走查见 docs/business/访客注册与派梯楼层业务流程走查.md。
子模块分层(推荐理解顺序)
| 子模块 | 典型职责 |
|---|---|
cw-elevator-application-common |
公共枚举、常量、工具、跨层 DTO/注解等 |
cw-elevator-application-data |
MyBatis 实体、Mapper、DAO 与数据源相关 |
cw-elevator-application-service |
业务实现:PersonRuleServiceImpl、设备服务、记录服务等 |
cw-elevator-application-web |
Spring MVC 控制器,对外 HTTP API(如 /elevator/person/add/visitor) |
技术栈摘要
- Spring Boot 2.1.x、Java 1.8
- MyBatis、分库分表(ShardingSphere 等版本在父 POM 属性中集中管理)
- 依赖
cloudwalk-common-*、intelligent-cwoscomponent-rest等(与智能侧、组织侧集成)
与运行包、反编译归档的关系
- 父 POM 中属性
cw.elevator.v1.lib.dir指向根目录cw-elevator-application-V1.0.0.20211103/lib,用于与 V1 运行包内 JAR 文件名 对齐,便于install-file或私服核对。 artifacts/decompiled/trees/cw-elevator-application-*-SNAPSHOT.jar.src为历史解压对照;日常改代码以maven-cw-elevator-application下各模块为准。
3.3 maven-intelligent-cwoscomponent — 智能组件(接口 + REST)
定位
智能操作系统组件(CWOS Component):对上提供 REST / Feign Client 入口,对下通过 Feign 调用组织人员、电梯、图库、空间等微服务。在业务文档中常作为「第三方或网关」与 cw-elevator-application 之间的中转层(例如 ElevatorPersonService.addVisitor → Feign → POST /elevator/person/add/visitor)。
子模块说明
| 子模块 | 职责 |
|---|---|
intelligent-cwoscomponent-parent |
占位/对齐原多模块父工程坐标(若子模块引用需要) |
intelligent-cwoscomponent-interface |
API、参数、结果 DTO、对外 Service 接口定义 |
intelligent-cwoscomponent-rest |
接口实现、Feign 客户端声明、与 Spring Cloud 集成 |
技术栈摘要
- Spring Boot 2.1.x、Spring Cloud Greenwich
- 管理
cloudwalk-device-sdk-protocol-entity等与设备协议相关的版本(父 POM 注释与 V1lib对齐)
与其它工程关系
maven-cw-elevator-application依赖intelligent-cwoscomponent-rest(或同版本构件),形成「智能组件编排 ↔ 电梯落地」的链路。maven-ninca-crk的ninca-crk-gpu-std对intelligent-cwoscomponent-rest存在 exclusion 等精细依赖控制,说明 CRK 打包场景下需避免重复引入或版本冲突,以实际ninca-crk-gpu-std/pom.xml为准。
3.4 maven-ninca-crk — NINCA CRK 产品线(当前聚合 GPU 标准后端)
定位
NINCA CRK(门禁、考勤、访客、会议等组合能力)产品族中的 标准 GPU 出入口后端 工程 ninca-crk-gpu-std。子模块描述中体现为轻舟 1.4 体系下的 标准 GPU 服务器-出入口版;考勤、访客、门禁等大量 web 模块以私服版本依赖 引入,不在本 reactor 的 modules 列表中展开。
为何使用 Boot 1.5 + Edgware
父 POM 说明:为 贴近原 spring-boot-maven-plugin 1.3.x 时代栈,采用 Spring Boot 1.5.22 与 Spring Cloud Edgware,减少与历史 fat jar 字节码、依赖树差异带来的构建问题。
技术栈摘要
- Spring Boot 1.5.x、Cloud Edgware
- Java 1.8
- 与
intelligent-cwoscomponent-rest、cloudwalk-common-event等版本在父 POMdependencyManagement中锁定
与其它工程关系
依赖本仓库整理的 intelligent-cwoscomponent-rest、cloudwalk-common-event 等;更多 ninca-crk-* 构件从 Nexus 拉取。
3.5 maven-ninca-qk-alarm — 轻舟告警应用(Starter 聚合)
定位
区域告警 / 轻舟告警(qk-alarm) 可执行应用的 Maven 化聚合:原 ninca-qk-alarm-app 父 POM 缺失,由本 ninca-qk-alarm-decompiled-reactor 补齐 dependencyManagement、插件版本、编码 等,当前 reactor 直接列出的模块为 ninca-qk-alarm-app-starter(可执行 JAR 形态业务的启动与组装入口)。
子模块 ninca-qk-alarm-app-starter 说明
- 依赖
ninca-qk-alarm-app-web、ninca-qk-alarm-app-interface等同版本子构件,形成完整 Web + 接口层。 - 使用 Curator + ZooKeeper(版本在父 POM 统一管理),适用于注册发现或分布式协调类能力(以实际代码为准)。
技术栈摘要
- Spring Boot 2.1.x、Java 1.8
- MyBatis Spring Boot、Jacoco 等插件在父 POM
pluginManagement中声明
与其它工程关系
主要依赖 cloudwalk-common-web 等云从公共 Web 能力;与电梯、智能组件无强绑定,相对 独立部署单元。
4. 工程间依赖与协作(简图)
下列关系表示 Maven 依赖 / 常见运行时调用方向,非严格部署拓扑。
flowchart LR
subgraph cloud [maven-cloudwalk-cloud]
CE[cloudwalk-common-event]
CS[cloudwalk-common-service]
end
subgraph intel [maven-intelligent-cwoscomponent]
IR[intelligent-cwoscomponent-rest]
end
subgraph elev [maven-cw-elevator-application]
EW[cw-elevator-application-web]
ES[cw-elevator-application-service]
end
subgraph crk [maven-ninca-crk]
GPU[ninca-crk-gpu-std]
end
subgraph alarm [maven-ninca-qk-alarm]
ST[ninca-qk-alarm-app-starter]
end
CE --> ES
CS --> ES
IR --> ES
ES --> EW
CE --> GPU
IR -.->|可能被 exclusion| GPU
CS --> ST
文字归纳
- 电梯应用 依赖 公共云模块 + 智能组件 REST,对外暴露电梯 HTTP API;智能组件再通过 Feign 回调电梯、组织等。
- CRK GPU 标准后端 依赖公共事件、智能组件等,与考勤/访客等 NINCA 模块 打成一个可部署单元(具体以
ninca-crk-gpu-std/pom.xml为准)。 - 告警应用 相对独立,主要挂 CloudWalk Web 公共栈。
5. 源码目录、artifacts、运行包三者的分工
| 位置 | 性质 | 建议使用方式 |
|---|---|---|
maven-*/*/src/main/java |
已整理为 Maven 标准目录的 主修改区 | 日常开发、编译、mvn validate/package |
artifacts/decompiled/trees/*.jar.src |
反编译解压树 归档对照 | 查历史包内资源、与 META-INF/maven 对照版本 |
artifacts/decompiled/archives/*.jar.src.zip |
未解压的 zip 备份 | 备份、交付留档 |
cw-elevator-application-V1.0.0.20211103/ |
V1 运行包展开(含 lib/) |
对齐线上依赖列表;docs/operations/deploy_cw_elevator_v1_lib_to_nexus.py 默认读取其 lib |
详见 artifacts/decompiled/README.md。
6. 构建与环境(延伸阅读)
- JDK 版本依据:ORIGINAL_BUILD_JDK.txt
- 各父 POM 中
maven-enforcer-plugin要求使用 JDK 8 范围,与上述依据一致。 - 代码风格:
docs/style/alibaba-eclipse-codestyle.xml,各聚合工程通过属性alibaba.eclipse.codestyle.path引用。 - 私服与上传脚本:
docs/operations/deploy_cw_elevator_v1_lib_to_nexus.py;Nexus 地址见各父 POM 中nexus.baseUrl注释。
7. 文档维护
- 若新增第六个聚合工程,请在本表与各节补充 目录、artifactId、modules、与其它工程的依赖边。
- 若 Spring Boot / Cloud 版本升级,请以各
maven-*/pom.xml为准同步更新本文「技术栈摘要」小节。