fix(build): 私服 legacy 坐标分离、电梯 common/data 可编译与本地编译文档

- cloudwalk.legacy.public.version=3.7.2:result/web/serial 仍走私服;event/service 用 4.0.0
- common: spring-web;CollectionUtils for-each  Iterable 强转
- data: 反编译 DTO hashCode/import 修正(ImageRuleRef*、AcsElevatorDevice*)
- docs/build/本地编译说明.md;Maven工作区修订表补充 legacy 说明

Made-with: Cursor
This commit is contained in:
反编译工作区
2026-04-24 11:37:48 +08:00
parent e7f1d0b3bb
commit b30ea1f70c
15 changed files with 93 additions and 23 deletions
@@ -132,6 +132,7 @@ maven-ninca-qk-alarm/ninca-qk-alarm-app-starter/pom.xml
|------|------| |------|------|
| 2026-04-24 | 初稿:工作区 `pom` 走查 | | 2026-04-24 | 初稿:工作区 `pom` 走查 |
| 2026-04-24 | **主版本升级**(与历史反编译/私服坐标区分):电梯 **2.0-SNAPSHOT**、intelligent **3.0.0-xinghewan**、cloudwalk-cloud **4.0.0-Brussels-SRX**、ninca-crk **2.0.0**、ninca-qk-alarm **1.0.0-SNAPSHOT**`cloudwalk.internal.version`、电梯与 ninca-crk 中 intelligent 属性已对齐 | | 2026-04-24 | **主版本升级**(与历史反编译/私服坐标区分):电梯 **2.0-SNAPSHOT**、intelligent **3.0.0-xinghewan**、cloudwalk-cloud **4.0.0-Brussels-SRX**、ninca-crk **2.0.0**、ninca-qk-alarm **1.0.0-SNAPSHOT**`cloudwalk.internal.version`、电梯与 ninca-crk 中 intelligent 属性已对齐 |
| 2026-04-24 | **`cloudwalk.legacy.public.version`3.7.2-Brussels-SRX**:私服未发布新主版本的 `cloudwalk-common-result` / `web` / `serial` 时,与反应堆 **4.0.0** 解耦;本地编译说明见 [docs/build/本地编译说明.md](../build/本地编译说明.md) |
--- ---
+60
View File
@@ -0,0 +1,60 @@
# 本地编译说明(Maven 工作区)
## 1. 环境与 JVM
- **Maven 进程 JVM**:须为 **JDK 8**(与 `maven-enforcer-plugin` 及各父 POM `java.version` 一致)。
示例(Linux):
```bash
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH="$JAVA_HOME/bin:$PATH"
java -version # 应显示 1.8.x
```
## 2. 私服与网络
-`pom.xml` 中默认 Nexus 为 **`http://192.168.3.12/...`**(或带端口 `8081``maven-public`)。
- **须在能访问该私服的网络环境**(如内网/VPN)下执行,否则 `intelligent-cwoscomponent``cw-elevator-application-service` 等模块会因 **父 POM / 传递依赖无法解析** 而失败。
## 3. 推荐编译顺序(依赖链)
在仓库根下按顺序 **install**(或至少 **compile** 前序模块并 install 到本地 `~/.m2`):
1. **`maven-cloudwalk-cloud`**`mvn -DskipTests clean install`
2. **`maven-intelligent-cwoscomponent`**`mvn -DskipTests clean install`(依赖 cloudwalk 与私服 `cloudwalk-device-sdk` 等)
3. **`maven-cw-elevator-application`**`mvn -DskipTests clean install`
4. 其余:`maven-ninca-crk``maven-ninca-qk-alarm` 按需单独编译。
单工程示例:
```bash
cd maven-cloudwalk-cloud && mvn -DskipTests clean install
cd ../maven-intelligent-cwoscomponent && mvn -DskipTests clean install
cd ../maven-cw-elevator-application && mvn -DskipTests clean compile
```
## 4. 版本与私服坐标说明
- **`cloudwalk.internal.version`(如 4.0.0-Brussels-SRX**:表示本仓库 **`cloudwalk-common-event` / `cloudwalk-common-service`** 等**已迁入源码**构件的版本。
- **`cloudwalk.legacy.public.version`(固定 3.7.2-Brussels-SRX**:表示**未迁入本仓库**、仍只能从私服获取的 **`cloudwalk-common-result` / `cloudwalk-common-web` / `cloudwalk-common-serial`** 等历史 GAV,**勿与反应堆主版本混用**,否则 Nexus 上无对应版本会导致解析失败。
详见 [Maven工作区子工程版本一览](../architecture/Maven工作区子工程版本一览.md)。
## 5. 本机验证结果(参考)
| 模块 | 说明 |
|------|------|
| `maven-cloudwalk-cloud` | 在可访问 Nexus 时,`mvn clean install` 可通过。 |
| `maven-cw-elevator-application`**common / data** | 已补齐 `spring-web``CollectionUtils` 与部分 DTO 反编译错误后,`mvn clean compile` 可编过至 **data** 模块。 |
| `cw-elevator-application-service` | 依赖 **`cwos-component-resource``cwos-portal``davinci-manager-storage`** 等父工程,**须私服完整** 方可继续解析。 |
若仅修改电梯 **data/service 内业务代码**,可在完整依赖环境执行:
```bash
cd maven-cw-elevator-application
mvn -pl cw-elevator-application-service -am -DskipTests clean compile
```
---
*随 POM 与私服策略变更请更新本文。*
+3 -1
View File
@@ -28,6 +28,8 @@
<java.version>1.8</java.version> <java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR6</spring-cloud.version> <spring-cloud.version>Greenwich.SR6</spring-cloud.version>
<cloudwalk.internal.version>4.0.0-Brussels-SRX</cloudwalk.internal.version> <cloudwalk.internal.version>4.0.0-Brussels-SRX</cloudwalk.internal.version>
<!-- 未迁入本仓库、私服仍为历史 GAV 的云从公共 JAR(如 common-result),与反应堆版本解耦 -->
<cloudwalk.legacy.public.version>3.7.2-Brussels-SRX</cloudwalk.legacy.public.version>
<!-- 与 V1 运行包 lib 内 cwos-sdk-event 一致(私服常见为 1.5.0-SNAPSHOT,非 4.0.0 坐标) --> <!-- 与 V1 运行包 lib 内 cwos-sdk-event 一致(私服常见为 1.5.0-SNAPSHOT,非 4.0.0 坐标) -->
<cwos.sdk.event.version>1.5.0-SNAPSHOT</cwos.sdk.event.version> <cwos.sdk.event.version>1.5.0-SNAPSHOT</cwos.sdk.event.version>
<!-- Nexus UI: http://192.168.3.12/#browse/welcome --> <!-- Nexus UI: http://192.168.3.12/#browse/welcome -->
@@ -50,7 +52,7 @@
<dependency> <dependency>
<groupId>cn.cloudwalk.cloud</groupId> <groupId>cn.cloudwalk.cloud</groupId>
<artifactId>cloudwalk-common-result</artifactId> <artifactId>cloudwalk-common-result</artifactId>
<version>${cloudwalk.internal.version}</version> <version>${cloudwalk.legacy.public.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.cloudwalk.cloud</groupId> <groupId>cn.cloudwalk.cloud</groupId>
@@ -66,6 +66,10 @@
<groupId>net.lingala.zip4j</groupId> <groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId> <artifactId>zip4j</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.data</groupId> <groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId> <artifactId>spring-data-redis</artifactId>
@@ -267,7 +267,7 @@ public class CollectionUtils {
} }
} }
} else if (value instanceof Collection || value instanceof Stack) { } else if (value instanceof Collection || value instanceof Stack) {
for (Object object : value) { for (Object object : (Iterable<?>)value) {
collection.add((T)object); collection.add((T)object);
} }
} else if (value instanceof Iterator) { } else if (value instanceof Iterator) {
@@ -294,7 +294,7 @@ public class CollectionUtils {
} }
} }
} else if (value instanceof Collection || value instanceof Stack) { } else if (value instanceof Collection || value instanceof Stack) {
for (Object object : value) { for (Object object : (Iterable<?>)value) {
stack.push((T)object); stack.push((T)object);
} }
} else { } else {
@@ -36,7 +36,7 @@ public class AcsElevatorDeviceListByBuildingIdDto implements Serializable {
public int hashCode() { public int hashCode() {
int PRIME = 59; int PRIME = 59;
result = 1; int result = 1;
Object $businessId = getBusinessId(); Object $businessId = getBusinessId();
result = result * 59 + (($businessId == null) ? 43 : $businessId.hashCode()); result = result * 59 + (($businessId == null) ? 43 : $businessId.hashCode());
Object $currentBuildingId = getCurrentBuildingId(); Object $currentBuildingId = getCurrentBuildingId();
@@ -74,7 +74,7 @@ public class AcsElevatorDeviceListResultDto extends CloudwalkBaseTimes implement
public int hashCode() { public int hashCode() {
int PRIME = 59; int PRIME = 59;
result = 1; int result = 1;
Object $businessId = getBusinessId(); Object $businessId = getBusinessId();
result = result * 59 + (($businessId == null) ? 43 : $businessId.hashCode()); result = result * 59 + (($businessId == null) ? 43 : $businessId.hashCode());
Object $deviceId = getDeviceId(); Object $deviceId = getDeviceId();
@@ -137,7 +137,7 @@ public class AcsElevatorDeviceQueryFoDTO {
public int hashCode() { public int hashCode() {
int PRIME = 59; int PRIME = 59;
result = 1; int result = 1;
Object $id = getId(); Object $id = getId();
result = result * 59 + (($id == null) ? 43 : $id.hashCode()); result = result * 59 + (($id == null) ? 43 : $id.hashCode());
Object $businessId = getBusinessId(); Object $businessId = getBusinessId();
@@ -115,7 +115,7 @@ public class AcsElevatorDeviceResultDTO {
public int hashCode() { public int hashCode() {
int PRIME = 59; int PRIME = 59;
result = 1; int result = 1;
Object $id = getId(); Object $id = getId();
result = result * 59 + (($id == null) ? 43 : $id.hashCode()); result = result * 59 + (($id == null) ? 43 : $id.hashCode());
Object $businessId = getBusinessId(); Object $businessId = getBusinessId();
@@ -131,7 +131,7 @@ public class ImageRuleRefAddDto extends CloudwalkBaseTimes implements Serializab
public int hashCode() { public int hashCode() {
int PRIME = 59; int PRIME = 59;
result = 1; int result = 1;
Object $businessId = getBusinessId(); Object $businessId = getBusinessId();
result = result * 59 + (($businessId == null) ? 43 : $businessId.hashCode()); result = result * 59 + (($businessId == null) ? 43 : $businessId.hashCode());
Object $name = getName(); Object $name = getName();
@@ -1,5 +1,6 @@
package cn.cloudwalk.elevator.passrule.dto; package cn.cloudwalk.elevator.passrule.dto;
import cn.cloudwalk.cloud.entity.CloudwalkBaseTimes;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
@@ -69,18 +70,16 @@ public class ImageRuleRefListResult extends CloudwalkBaseTimes implements Serial
Object this$personId = getPersonId(), other$personId = other.getPersonId(); Object this$personId = getPersonId(), other$personId = other.getPersonId();
if ((this$personId == null) ? (other$personId != null) : !this$personId.equals(other$personId)) if ((this$personId == null) ? (other$personId != null) : !this$personId.equals(other$personId))
return false; return false;
Object<String> this$includeLabels = (Object<String>)getIncludeLabels(), Object this$includeLabels = getIncludeLabels(), other$includeLabels = other.getIncludeLabels();
other$includeLabels = (Object<String>)other.getIncludeLabels();
if ((this$includeLabels == null) ? (other$includeLabels != null) if ((this$includeLabels == null) ? (other$includeLabels != null)
: !this$includeLabels.equals(other$includeLabels)) : !this$includeLabels.equals(other$includeLabels))
return false; return false;
Object<String> this$includeOrganizations = (Object<String>)getIncludeOrganizations(), Object this$includeOrganizations = getIncludeOrganizations(), other$includeOrganizations =
other$includeOrganizations = (Object<String>)other.getIncludeOrganizations(); other.getIncludeOrganizations();
if ((this$includeOrganizations == null) ? (other$includeOrganizations != null) if ((this$includeOrganizations == null) ? (other$includeOrganizations != null)
: !this$includeOrganizations.equals(other$includeOrganizations)) : !this$includeOrganizations.equals(other$includeOrganizations))
return false; return false;
Object<String> this$excludeLabels = (Object<String>)getExcludeLabels(), Object this$excludeLabels = getExcludeLabels(), other$excludeLabels = other.getExcludeLabels();
other$excludeLabels = (Object<String>)other.getExcludeLabels();
return !((this$excludeLabels == null) ? (other$excludeLabels != null) return !((this$excludeLabels == null) ? (other$excludeLabels != null)
: !this$excludeLabels.equals(other$excludeLabels)); : !this$excludeLabels.equals(other$excludeLabels));
} }
@@ -91,7 +90,7 @@ public class ImageRuleRefListResult extends CloudwalkBaseTimes implements Serial
public int hashCode() { public int hashCode() {
int PRIME = 59; int PRIME = 59;
result = 1; int result = 1;
Object $businessId = getBusinessId(); Object $businessId = getBusinessId();
result = result * 59 + (($businessId == null) ? 43 : $businessId.hashCode()); result = result * 59 + (($businessId == null) ? 43 : $businessId.hashCode());
Object $name = getName(); Object $name = getName();
@@ -102,11 +101,11 @@ public class ImageRuleRefListResult extends CloudwalkBaseTimes implements Serial
result = result * 59 + (($zoneName == null) ? 43 : $zoneName.hashCode()); result = result * 59 + (($zoneName == null) ? 43 : $zoneName.hashCode());
Object $personId = getPersonId(); Object $personId = getPersonId();
result = result * 59 + (($personId == null) ? 43 : $personId.hashCode()); result = result * 59 + (($personId == null) ? 43 : $personId.hashCode());
Object<String> $includeLabels = (Object<String>)getIncludeLabels(); Object $includeLabels = getIncludeLabels();
result = result * 59 + (($includeLabels == null) ? 43 : $includeLabels.hashCode()); result = result * 59 + (($includeLabels == null) ? 43 : $includeLabels.hashCode());
Object<String> $includeOrganizations = (Object<String>)getIncludeOrganizations(); Object $includeOrganizations = getIncludeOrganizations();
result = result * 59 + (($includeOrganizations == null) ? 43 : $includeOrganizations.hashCode()); result = result * 59 + (($includeOrganizations == null) ? 43 : $includeOrganizations.hashCode());
Object<String> $excludeLabels = (Object<String>)getExcludeLabels(); Object $excludeLabels = getExcludeLabels();
return result * 59 + (($excludeLabels == null) ? 43 : $excludeLabels.hashCode()); return result * 59 + (($excludeLabels == null) ? 43 : $excludeLabels.hashCode());
} }
+4 -3
View File
@@ -29,6 +29,7 @@
<!-- 与 V1 运行包 lib 目录内 JAR 文件名对齐,便于 install-file 或私服核对 --> <!-- 与 V1 运行包 lib 目录内 JAR 文件名对齐,便于 install-file 或私服核对 -->
<cw.elevator.v1.lib.dir>${project.basedir}/../cw-elevator-application-V1.0.0.20211103/lib</cw.elevator.v1.lib.dir> <cw.elevator.v1.lib.dir>${project.basedir}/../cw-elevator-application-V1.0.0.20211103/lib</cw.elevator.v1.lib.dir>
<cloudwalk.internal.version>4.0.0-Brussels-SRX</cloudwalk.internal.version> <cloudwalk.internal.version>4.0.0-Brussels-SRX</cloudwalk.internal.version>
<cloudwalk.legacy.public.version>3.7.2-Brussels-SRX</cloudwalk.legacy.public.version>
<intelligent.cwoscomponent.version>3.0.0-xinghewan</intelligent.cwoscomponent.version> <intelligent.cwoscomponent.version>3.0.0-xinghewan</intelligent.cwoscomponent.version>
<fastjson.version>1.2.83</fastjson.version> <fastjson.version>1.2.83</fastjson.version>
<guava.version>28.2-jre</guava.version> <guava.version>28.2-jre</guava.version>
@@ -60,12 +61,12 @@
<dependency> <dependency>
<groupId>cn.cloudwalk.cloud</groupId> <groupId>cn.cloudwalk.cloud</groupId>
<artifactId>cloudwalk-common-result</artifactId> <artifactId>cloudwalk-common-result</artifactId>
<version>${cloudwalk.internal.version}</version> <version>${cloudwalk.legacy.public.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.cloudwalk.cloud</groupId> <groupId>cn.cloudwalk.cloud</groupId>
<artifactId>cloudwalk-common-web</artifactId> <artifactId>cloudwalk-common-web</artifactId>
<version>${cloudwalk.internal.version}</version> <version>${cloudwalk.legacy.public.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.cloudwalk.cloud</groupId> <groupId>cn.cloudwalk.cloud</groupId>
@@ -80,7 +81,7 @@
<dependency> <dependency>
<groupId>cn.cloudwalk.cloud</groupId> <groupId>cn.cloudwalk.cloud</groupId>
<artifactId>cloudwalk-common-serial</artifactId> <artifactId>cloudwalk-common-serial</artifactId>
<version>${cloudwalk.internal.version}</version> <version>${cloudwalk.legacy.public.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.cloudwalk.intelligent</groupId> <groupId>cn.cloudwalk.intelligent</groupId>
+2 -1
View File
@@ -27,6 +27,7 @@
<java.version>1.8</java.version> <java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR6</spring-cloud.version> <spring-cloud.version>Greenwich.SR6</spring-cloud.version>
<cloudwalk.internal.version>4.0.0-Brussels-SRX</cloudwalk.internal.version> <cloudwalk.internal.version>4.0.0-Brussels-SRX</cloudwalk.internal.version>
<cloudwalk.legacy.public.version>3.7.2-Brussels-SRX</cloudwalk.legacy.public.version>
<fastjson.version>1.2.83</fastjson.version> <fastjson.version>1.2.83</fastjson.version>
<!-- 与 V1 运行包 lib 内 cloudwalk-device-sdk-protocol-entity-2.2.0.jar 一致 --> <!-- 与 V1 运行包 lib 内 cloudwalk-device-sdk-protocol-entity-2.2.0.jar 一致 -->
<cloudwalk.device.sdk.version>2.2.0</cloudwalk.device.sdk.version> <cloudwalk.device.sdk.version>2.2.0</cloudwalk.device.sdk.version>
@@ -49,7 +50,7 @@
<dependency> <dependency>
<groupId>cn.cloudwalk.cloud</groupId> <groupId>cn.cloudwalk.cloud</groupId>
<artifactId>cloudwalk-common-result</artifactId> <artifactId>cloudwalk-common-result</artifactId>
<version>${cloudwalk.internal.version}</version> <version>${cloudwalk.legacy.public.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.cloudwalk.cloud</groupId> <groupId>cn.cloudwalk.cloud</groupId>
+1
View File
@@ -25,6 +25,7 @@
<java.version>1.8</java.version> <java.version>1.8</java.version>
<spring-cloud.version>Edgware.SR6</spring-cloud.version> <spring-cloud.version>Edgware.SR6</spring-cloud.version>
<cloudwalk.internal.version>4.0.0-Brussels-SRX</cloudwalk.internal.version> <cloudwalk.internal.version>4.0.0-Brussels-SRX</cloudwalk.internal.version>
<cloudwalk.legacy.public.version>3.7.2-Brussels-SRX</cloudwalk.legacy.public.version>
<intelligent.cwoscomponent.rest.version>3.0.0-xinghewan</intelligent.cwoscomponent.rest.version> <intelligent.cwoscomponent.rest.version>3.0.0-xinghewan</intelligent.cwoscomponent.rest.version>
<ninca-crk-smart-attendance.version>2.9.1_210630-SNAPSHOT</ninca-crk-smart-attendance.version> <ninca-crk-smart-attendance.version>2.9.1_210630-SNAPSHOT</ninca-crk-smart-attendance.version>
<ninca-crk-visitor-management.version>2.9.1_210630-SNAPSHOT</ninca-crk-visitor-management.version> <ninca-crk-visitor-management.version>2.9.1_210630-SNAPSHOT</ninca-crk-visitor-management.version>
+2 -1
View File
@@ -24,6 +24,7 @@
<properties> <properties>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<cloudwalk.internal.version>4.0.0-Brussels-SRX</cloudwalk.internal.version> <cloudwalk.internal.version>4.0.0-Brussels-SRX</cloudwalk.internal.version>
<cloudwalk.legacy.public.version>3.7.2-Brussels-SRX</cloudwalk.legacy.public.version>
<curator.version>4.2.0</curator.version> <curator.version>4.2.0</curator.version>
<zookeeper.version>3.4.14</zookeeper.version> <zookeeper.version>3.4.14</zookeeper.version>
<mybatis-spring-boot.version>2.0.1</mybatis-spring-boot.version> <mybatis-spring-boot.version>2.0.1</mybatis-spring-boot.version>
@@ -74,7 +75,7 @@
<dependency> <dependency>
<groupId>cn.cloudwalk.cloud</groupId> <groupId>cn.cloudwalk.cloud</groupId>
<artifactId>cloudwalk-common-web</artifactId> <artifactId>cloudwalk-common-web</artifactId>
<version>${cloudwalk.internal.version}</version> <version>${cloudwalk.legacy.public.version}</version>
</dependency> </dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>