- backend/: 13 Maven modules (cw-elevator-application, cloudwalk-cloud, intelligent-cwoscomponent, ninca-crk, etc.) - frontend/: 4 Vue projects (elevator-front, cwos-portal, alarm-front, front_acs) + decompiled + scripts - scripts/: build, test-env, tools (Docker Compose, service templates, API parity) - docs/: AGENTS.md, superpowers specs, architecture docs - .gitignore: standard Java/Maven exclusions Moved from legacy maven-*/ root layout to backend/ organized structure.
22 KiB
Maven 聚合工程说明(starRiverProperty)
适用范围:本仓库根目录下以
maven-为前缀的 Maven Reactor:其中 五个 为主业务聚合工程;另有 七个 补充反应堆(maven-cloudwalk-device-sdk、maven-cloudwalk-device-manager、maven-cwos-resource、maven-cloudwalk-intelligent-davinci-manager、maven-cloudwalk-legacy-public、maven-cwos-common-aks、maven-cwos-device-authentication)用于在私服缺父 POM 或缺历史公共 JAR 时 本地install闭合cloudwalk-device-sdk、cloudwalk-device-manager、cwos-component-resource、cwos-portal、cwos-java-sdk-resource、cloudwalk-intelligent-davinci-manager/davinci-manager-storage、cloudwalk-common-result/web/serial(3.7.2)、cwos-sdk-event、cloudwalk-intelligent-component-lock、cwos-common-aks/cwos-device-authentication等坐标(反1/下对应*.jar.src.zip已接入各反应堆)。
不适用范围:各工程依赖的 NINCA / 云从内部 等大量 JAR 仍多须 Nexus 解析;本文描述本仓库内可见的模块边界与协作关系,补充反应堆仅覆盖文档化缺口中的一段。
1. 文档目的
- 说明五个聚合工程各自的 业务定位、子模块划分、技术栈选型原因。
- 说明工程之间的 Maven 依赖与调用链上的协作(与
docs/business/中接口走查互补:本文偏「工程与构件」,走查文档偏「接口与数据流」)。 - 说明
maven-*目录与artifacts/decompiled/(源码归档,目录名decompiled为历史约定)、运行包目录cw-elevator-application-V1.0.0.20211103/的分工,避免混淆「可改源码树」与「仅对照归档」。
2. 工程一览
2.1 主业务五工程
| 仓库目录 | 聚合 artifactId(父 POM) | groupId |
版本(父 POM) | 子模块(modules) |
|---|---|---|---|---|
maven-cloudwalk-cloud/ |
cloudwalk-cloud-reactor |
cn.cloudwalk.cloud |
4.0.0-Brussels-SRX |
cloudwalk-cloud-common、cloudwalk-common-event、cloudwalk-common-service |
maven-cw-elevator-application/ |
cw-elevator-application-reactor |
cn.cloudwalk.elevator |
2.0-SNAPSHOT |
cw-elevator-application-common、data、service、web |
maven-intelligent-cwoscomponent/ |
intelligent-cwoscomponent-reactor |
cn.cloudwalk.intelligent |
3.0.0-xinghewan |
intelligent-cwoscomponent-parent、interface、rest |
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 等子模块) |
2.2 补充反应堆(编译链)
| 仓库目录 | 说明 |
|---|---|
maven-cloudwalk-device-sdk/ |
安装 cn.cloudwalk:cloudwalk-device-sdk:2.2.0(pom)与 cloudwalk-device-sdk-protocol-entity,供 maven-intelligent-cwoscomponent 解析 protocol-entity 描述符。 |
maven-cloudwalk-device-manager/ |
安装 cn.cloudwalk.cloud:cloudwalk-device-manager:2.0.2(pom)及 cloudwalk-device-manager-common、cloudwalk-device-manager-interface;依赖 cloudwalk-common-result:3.7.2-Brussels-SRX(须先 maven-cloudwalk-legacy-public install)。 |
maven-cwos-resource/ |
安装 cwos-component-resource、cwos-portal 父 POM 及 cwos-java-sdk-resource 等,供 cw-elevator-application-service 解析 cwos-java-sdk-resource 的传递父链。cwos-portal-interface 为 裁剪 + 占位 以闭合 SDK,详见 本地编译说明.md §3。 |
maven-cloudwalk-intelligent-davinci-manager/ |
安装 cn.cloudwalk.intelligent:cloudwalk-intelligent-davinci-manager:1.1.7-SNAPSHOT(父 pom)及 davinci-manager-common、davinci-manager-storage,供电梯 cw-elevator-application-service 解析 davinci-manager-storage(davinci.manager.storage.version)。源码基底来自历史 1.1.5 反编译 zip,与 V1 运行包 1.1.7-SNAPSHOT 坐标一致;SpringMvcContract / FeignClientsConfiguration 与 Greenwich + OpenFeign 对齐。 |
maven-cloudwalk-legacy-public/ |
安装 cn.cloudwalk.cloud:cloudwalk-cloud-common:3.7.2-Brussels-SRX(与 cloudwalk-common-result / web / serial 反编译 POM 的 parent 一致)、cwos-sdk-event:1.5.0-SNAPSHOT、cloudwalk-intelligent-component-lock:1.1.1-SNAPSHOT。源码自 反1/*.jar.src.zip 解压;cwos-sdk-event 已替换 reflections-maven 为 org.reflections:reflections,并修正 KafkaConsumer#setListenerClass / EventClient 的编译问题。 |
maven-cwos-common-aks/ |
安装 cn.cloudwalk.cloud:cwos-common-aks:1.0.0-SNAPSHOT 与 cwos-common-aks-interface;源码自 反1/cwos-common-aks-interface-1.0.0-SNAPSHOT.jar.src.zip;须先 maven-cloudwalk-legacy-public(cloudwalk-common-result)。 |
maven-cwos-device-authentication/ |
安装 cn.cloudwalk.cloud:cwos-device-authentication:1.0.0-SNAPSHOT 与 cwos-device-authentication-interface;源码自 反1/cwos-device-authentication-interface-1.0.0-SNAPSHOT.jar.src.zip;依赖 device-sdk、device-manager、maven-cloudwalk-cloud(cloudwalk-common-service)、cwos-common-aks-interface,须在上述反应堆与 maven-cwos-common-aks 之后 install。 |
版本说明:上表为当前源码树反应堆版本(相对历史反编译/私服线已做主版本号升级,便于区分)。与
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 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(${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 注释与 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-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 能力;与电梯、智能组件无强绑定,相对 独立部署单元。
3.6 maven-cloudwalk-device-sdk — 设备 SDK 父 POM(协议实体)
定位
私服常缺失 cn.cloudwalk:cloudwalk-device-sdk:2.2.0 父 pom,导致无法解析 cloudwalk-device-sdk-protocol-entity。本反应堆在本地 install 后,maven-intelligent-cwoscomponent 的 intelligent-cwoscomponent-interface 可正常解析该依赖。
子模块
cloudwalk-device-sdk-protocol-entity:源码来自反1反编译 zip,与运行包 2.2.0 坐标一致。
3.7 maven-cwos-resource — CWOS 资源 / 门户 / Java SDK
定位
补齐 cwos-component-resource、cwos-portal 父 POM 及 cwos-java-sdk-resource,使 cw-elevator-application-service 不再因私服缺 cwos-component-resource:pom、cwos-portal:pom 而失败。
子模块要点
cwos-component-resource-data/cwos-component-resource-interface:反编译源码。cwos-portal-interface:为闭合cwos-java-sdk-resource的编译 classpath,已 裁剪 非 SDK 所需包,并含cwos-device-pkg-stub(DeviceUpgradeResult占位)。cwos-java-sdk-resource:Feign 注解由org.springframework.cloud.netflix.feign.FeignClient迁移为org.springframework.cloud.openfeign.FeignClient,与 Greenwich +spring-cloud-starter-openfeign一致;ResourceBeanConfig补全缺失的import。
3.8 maven-cloudwalk-intelligent-davinci-manager — Davinci 存储父链
定位
私服常缺失 cn.cloudwalk.intelligent:cloudwalk-intelligent-davinci-manager:1.1.7-SNAPSHOT 父 pom,导致无法解析 davinci-manager-storage(电梯 cw-elevator-application-service 直接依赖)。本反应堆在本地 install 后,可闭合该父链。
子模块
davinci-manager-common:DavinciResult、DavinciServiceException等。davinci-manager-storage:文件/分片上传 Feign 与FileStorageManager/FilePartManager实现;io.github.openfeign:feign-okhttp替代原 POM 中的com.netflix.feign:feign-okhttp,与 Spring Cloud Greenwich 管理的 OpenFeign 一致。
3.9 maven-cloudwalk-legacy-public — 反1 私服公共线(3.7.2 + cwos-sdk-event + lock)
定位
将 反1/ 内 cloudwalk-common-*-3.7.2-Brussels-SRX.jar.src.zip、cwos-sdk-event-1.5.0-SNAPSHOT.jar.src.zip、cloudwalk-intelligent-component-lock-1.1.1-SNAPSHOT.jar.src.zip 解压为 Maven 子模块并 install,闭合 cloudwalk.legacy.public.version、cwos.sdk.event.version、intelligent.lock.version 等横切依赖。
子模块要点
cloudwalk-cloud-common:3.7.2-Brussels-SRX父pom(继承 Boot 1.5.22);与maven-cloudwalk-cloud中 4.0.0 的 stubcloudwalk-cloud-common为不同版本,勿混用。cloudwalk-common-result:在反编译依赖外补 Spring / Jackson / Joda / SLF4J / validation-api。cwos-sdk-event:reflections-maven→org.reflections:reflections;KafkaConsumer实现Consumer#setListenerClass(Class);EventClient使用commons-lang3.StringUtils。
3.10 maven-cloudwalk-device-manager — 设备管理 common / interface(2.0.2)
定位
私服常缺失 cn.cloudwalk.cloud:cloudwalk-device-manager:2.0.2 父 pom,导致无法解析 cloudwalk-device-manager-common、cloudwalk-device-manager-interface。本反应堆在本地 install 后闭合该父链。
子模块
cloudwalk-device-manager-common、cloudwalk-device-manager-interface:源码来自反1/下cloudwalk-device-manager-*-2.0.2.jar.src.zip。父 POM 将cloudwalk-common-result锁定为3.7.2-Brussels-SRX(与maven-cloudwalk-legacy-public一致);hibernate-validator与 Boot 2.1.18 栈对齐(6.0.22.Final)。
与其它工程关系
须在 maven-cloudwalk-legacy-public 成功 install(提供 cloudwalk-common-result:3.7.2)之后,再 install 本反应堆。
3.11 maven-cwos-common-aks / maven-cwos-device-authentication — AKS 与设备认证 interface(1.0.0-SNAPSHOT)
定位
与 cw-elevator-application-V1.0.0.20211103/cw_lib 中 cwos-common-aks-interface、cwos-device-authentication-interface 同名坐标对齐;私服若缺 cwos-common-aks、cwos-device-authentication 父 POM,可在本地 install 闭合。
子模块
cwos-common-aks-interface、cwos-device-authentication-interface:源码来自反1/对应*.jar.src.zip。- device-authentication 的
pom依赖cloudwalk-common-service、cloudwalk-device-manager-interface、cwos-common-aks-interface、cloudwalk-device-sdk-protocol-entity等,编译顺序见 本地编译说明.md §3。
4. 工程间依赖与协作(简图)
下列关系表示 Maven 依赖 / 常见运行时调用方向,非严格部署拓扑。
flowchart LR
subgraph devsdk [maven-cloudwalk-device-sdk]
PE[protocol-entity]
end
subgraph cwos [maven-cwos-resource]
SDK[cwos-java-sdk-resource]
end
subgraph davinci [maven-cloudwalk-intelligent-davinci-manager]
DMS[davinci-manager-storage]
end
subgraph cloud [maven-cloudwalk-cloud]
CE[cloudwalk-common-event]
CS[cloudwalk-common-service]
end
subgraph intel [maven-intelligent-cwoscomponent]
II[intelligent-cwoscomponent-interface]
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
PE --> II
II --> IR
SDK --> ES
DMS --> ES
CE --> ES
CS --> ES
IR --> ES
ES --> EW
CE --> GPU
IR -.->|可能被 exclusion| GPU
CS --> ST
文字归纳
maven-cloudwalk-device-sdk为intelligent-cwoscomponent-interface提供cloudwalk-device-sdk-protocol-entity;maven-cwos-resource为cw-elevator-application-service提供cwos-java-sdk-resource(及 portal/resource 父链);maven-cloudwalk-intelligent-davinci-manager为cw-elevator-application-service提供davinci-manager-storage父链;maven-cloudwalk-legacy-public为cloudwalk-common-event、电梯 common、cwos-resource等提供cloudwalk-common-result/web/serial(3.7.2)、cwos-sdk-event、component-lock;maven-cloudwalk-device-manager提供cloudwalk-device-manager:2.0.2及 common/interface(依赖前述cloudwalk-common-result:3.7.2);maven-cwos-common-aks、maven-cwos-device-authentication与cw_lib中 AKS / 设备认证 interface 坐标对齐(详见 §3.11)。前序install顺序见 本地编译说明.md §3。- 电梯应用 依赖 公共云模块 + 智能组件 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
- 各父 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. 文档维护
- 若新增其它
maven-*反应堆,请在本表与各节补充 目录、artifactId、modules、与其它工程的依赖边,并更新 Maven工作区子工程版本一览 与 本地编译说明.md §3。 - 若 Spring Boot / Cloud 版本升级,请以各
maven-*/pom.xml为准同步更新本文「技术栈摘要」小节。