# 本地编译说明(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 与私服策略变更请更新本文。*