Initial commit: reorganized source tree

- 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.
This commit is contained in:
hpd840321
2026-05-09 09:00:12 +08:00
commit 7b2bd307f1
7260 changed files with 612980 additions and 0 deletions
+73
View File
@@ -0,0 +1,73 @@
#!/usr/bin/env bash
# 将 V1 / V2 JAR 复制到与各目录 application.properties 同路径,便于 java -jar 启动。
#
# 可选:PARITY_PATCH_V1_DATA=1 时,在复制 V1 fat-jar 后,用当前 Maven 构建的
# cw-elevator-application-data 模块 JAR **覆盖** fat-jar 内 lib/cw-elevator-application-data-1.0-SNAPSHOT.jar
#(文件名不变,仅替换字节码)。用于 V1/V2 对拍:消除历史运行包内嵌 data 层与源码分支分叉导致的
# ShardingSphere「no table route」等非业务差异。手工比对「纯正历史 V1」时请 unset 或设为 0。
set -euo pipefail
DEPLOY="$(cd "$(dirname "$0")" && pwd)"
MAVEN="$(cd "$DEPLOY/.." && pwd)"
REPO="$(cd "$MAVEN/.." && pwd)"
V1_SRC="${REPO}/cw-elevator-application-V1.0.0.20211103/cw-elevator-application-V1.0.0.20211103.jar"
V2_VER="${V2_VER:-2.0.7}"
V2_JAR_NAME="cw-elevator-application-${V2_VER}.jar"
V2_TGT="${MAVEN}/cw-elevator-application-starter/target/${V2_JAR_NAME}"
# 发布目录命名:cw-elevator-application-V<版本>.<YYYYMMDD>/(与 V1 运行包风格一致)
V2_BUNDLE="$(ls -1dt "${MAVEN}/releases"/cw-elevator-application-V"${V2_VER}".* 2>/dev/null | head -1 || true)"
V2_REL=""
if [[ -n "${V2_BUNDLE}" ]]; then
V2_REL="${V2_BUNDLE}/${V2_JAR_NAME}"
fi
if [[ -z "${V2_REL}" || ! -f "${V2_REL}" ]]; then
V2_LEGACY="${MAVEN}/releases/v${V2_VER}/${V2_JAR_NAME}"
if [[ -f "${V2_LEGACY}" ]]; then
V2_REL="${V2_LEGACY}"
fi
fi
PATCH_V1_DATA="${PARITY_PATCH_V1_DATA:-0}"
DATA_NEW="${MAVEN}/cw-elevator-application-data/target/cw-elevator-application-data-2.0-SNAPSHOT.jar"
if [[ ! -f "$V1_SRC" ]]; then
echo "ERROR: 未找到 V1 JAR: $V1_SRC" >&2
exit 1
fi
# 优先 target:本地 mvn package 后应与 deploy 同步,避免 releases 里旧包盖住新构建。
V2_SRC=""
if [[ -f "$V2_TGT" ]]; then
V2_SRC="$V2_TGT"
elif [[ -f "$V2_REL" ]]; then
V2_SRC="$V2_REL"
else
echo "ERROR: 未找到 V2 JAR(请先 mvn package,或运行 scripts/release-cw-elevator-application.sh ${V2_VER}:" >&2
echo " ${V2_TGT}" >&2
echo " 或 releases/cw-elevator-application-V${V2_VER}.<日期>/${V2_JAR_NAME}" >&2
exit 1
fi
install -m0644 "$V1_SRC" "${DEPLOY}/v1-legacy/cw-elevator-application-V1.0.0.20211103.jar"
install -m0644 "$V2_SRC" "${DEPLOY}/v2-maven/${V2_JAR_NAME}"
V1_OUT="${DEPLOY}/v1-legacy/cw-elevator-application-V1.0.0.20211103.jar"
if [[ "$PATCH_V1_DATA" == "1" ]]; then
if [[ ! -f "$DATA_NEW" ]]; then
echo "WARN: PARITY_PATCH_V1_DATA=1 但未找到 Maven data 模块产物,跳过覆盖: $DATA_NEW" >&2
else
# Spring Boot 可执行 fat-jar 要求 lib/*.jar 以 ZIP STORED(无压缩)存放;jar uf 会压缩嵌套 JAR,
# 导致 JarLauncher 报错「nested jar files must be stored without compression」。
TMPDIR="$(mktemp -d)"
mkdir -p "${TMPDIR}/lib"
cp -f "$DATA_NEW" "${TMPDIR}/lib/cw-elevator-application-data-1.0-SNAPSHOT.jar"
zip -d "$V1_OUT" "lib/cw-elevator-application-data-1.0-SNAPSHOT.jar" 2>/dev/null || true
(cd "$TMPDIR" && zip -q -0 "$V1_OUT" lib/cw-elevator-application-data-1.0-SNAPSHOT.jar)
rm -rf "$TMPDIR"
echo "OK: 已用当前构建 data 模块覆盖 V1 fat-jar 内 lib/cw-elevator-application-data-1.0-SNAPSHOT.jarSTORE,对拍专用)"
fi
fi
echo "OK: V1 -> deploy/v1-legacy/"
echo "OK: V2 -> deploy/v2-maven/"
ls -la "${DEPLOY}/v1-legacy/"*.jar "${DEPLOY}/v2-maven/"*.jar