Files
starRiverProperty/docs/architecture/Maven聚合工程说明.md
T
反编译工作区 e7f1d0b3bb chore: Maven 工程主版本号升级(与历史线区分)
- elevator reactor 2.0-SNAPSHOT;cloudwalk.internal 4.0.0-Brussels-SRX;intelligent 3.0.0-xinghewan
- intelligent/cloudwalk-cloud/ninca-crk/ninca-qk-alarm 反应堆与子模块 parent 同步
- MANIFEST.MF Implementation-Version 2.0-SNAPSHOT
- 文档:Maven工作区版本一览、聚合工程说明、ORIGINAL_BUILD_JDK 文首对照说明

Made-with: Cursor
2026-04-24 11:29:52 +08:00

12 KiB
Raw Blame History

Maven 聚合工程说明(starRiverProperty

适用范围:本仓库根目录下五个以 maven- 为前缀的 Maven Reactor(聚合父工程),用于本地编译、走查与增量修改。
不适用范围:各工程依赖的大量 NINCA / 云从内部 JAR 仍须通过 Nexus 等私服解析,本文仅描述本仓库内可见的模块边界与协作关系


1. 文档目的

  • 说明五个聚合工程各自的 业务定位、子模块划分、技术栈选型原因
  • 说明工程之间的 Maven 依赖与调用链上的协作(与 docs/business/ 中接口走查互补:本文偏「工程与构件」,走查文档偏「接口与数据流」)。
  • 说明 maven-* 目录与 artifacts/decompiled/(源码归档,目录名 decompiled 为历史约定)、运行包目录 cw-elevator-application-V1.0.0.20211103/ 的分工,避免混淆「可改源码树」与「仅对照归档」。

2. 五工程一览

仓库目录 聚合 artifactId(父 POM groupId 版本(父 POM 子模块(modules
maven-cloudwalk-cloud/ cloudwalk-cloud-reactor cn.cloudwalk.cloud 4.0.0-Brussels-SRX cloudwalk-cloud-commoncloudwalk-common-eventcloudwalk-common-service
maven-cw-elevator-application/ cw-elevator-application-reactor cn.cloudwalk.elevator 2.0-SNAPSHOT cw-elevator-application-commondataserviceweb
maven-intelligent-cwoscomponent/ intelligent-cwoscomponent-reactor cn.cloudwalk.intelligent 3.0.0-xinghewan intelligent-cwoscomponent-parentinterfacerest
maven-ninca-crk/ ninca-crk-reactor cn.cloudwalk.ninca 2.0.0 ninca-crk-gpu-std
maven-ninca-qk-alarm/ ninca-qk-alarm-reactor cn.cloudwalk.ninca 1.0.0-SNAPSHOT ninca-qk-alarm-app-starter(其下再含 web / interface 等子模块)

版本说明:上表为当前源码树反应堆版本(相对历史反编译/私服线已做主版本号升级,便于区分)。与 cw-elevator-application-V1.0.0.20211103历史运行包内 JAR 文件名不必一致,详见 docs/build/ORIGINAL_BUILD_JDK.txt 文首说明及 Maven工作区子工程版本一览


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 Greenwichspring-cloud-dependencies import
  • Java 1.8

与其它工程关系
maven-cw-elevator-applicationmaven-intelligent-cwoscomponentmaven-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${project.basedir}/../cw-elevator-application-V1.0.0.20211103/lib)与 V1 运行包 lib 目录 对齐,便于 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 注释与 V1 lib 对齐)

与其它工程关系

  • maven-cw-elevator-application 依赖 intelligent-cwoscomponent-rest(或同版本构件),形成「智能组件编排 ↔ 电梯落地」的链路。
  • maven-ninca-crkninca-crk-gpu-stdintelligent-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-restcloudwalk-common-event 等版本在父 POM dependencyManagement 中锁定

与其它工程关系
依赖本仓库整理的 intelligent-cwoscomponent-restcloudwalk-common-event 等;更多 ninca-crk-* 构件从 Nexus 拉取。


3.5 maven-ninca-qk-alarm — 轻舟告警应用(Starter 聚合)

定位
区域告警 / 轻舟告警(qk-alarm) 可执行应用的 Maven 化聚合:原 ninca-qk-alarm-app 父 POM 缺失,由本 ninca-qk-alarm-reactor 补齐 dependencyManagement、插件版本、编码 等,当前 reactor 直接列出的模块ninca-qk-alarm-app-starter(可执行 JAR 形态业务的启动与组装入口)。

子模块 ninca-qk-alarm-app-starter 说明

  • 依赖 ninca-qk-alarm-app-webninca-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 由 JAR 还原的 解压树归档(对照用) 查历史包内资源、与 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
  • 各父 POMmaven-enforcer-plugin 要求使用 JDK 8 范围,与上述依据一致。
  • 代码风格docs/style/alibaba-eclipse-codestyle.xml,各聚合工程通过属性 alibaba.eclipse.codestyle.path 引用。
  • 私服与上传脚本docs/operations/deploy_cw_elevator_v1_lib_to_nexus.pyNexus 地址见各父 POM 中 nexus.baseUrl 注释。

7. 文档维护

  • 若新增第六个聚合工程,请在本表与各节补充 目录、artifactId、modules、与其它工程的依赖边
  • 若 Spring Boot / Cloud 版本升级,请以各 maven-*/pom.xml 为准同步更新本文「技术栈摘要」小节。