mirror of
https://github.com/hpd840321/starRiverProperty.git
synced 2026-06-09 16:30:29 +08:00
7b2bd307f1
- 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.
81 lines
2.5 KiB
Bash
Executable File
81 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# 将 V1 运行包 cw_lib 中的电梯四模块 jar 用 CFR 反编译到本仓库 tools/v1-decompiled/ 下,
|
||
# 供与 maven-cw-elevator-application 源码逐类比对(不依赖历史 artifacts 手工目录)。
|
||
set -euo pipefail
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
MV_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||
REPO_ROOT="$(cd "$MV_ROOT/.." && pwd)"
|
||
|
||
# V1 解压目录(含 cw_lib)
|
||
: "${V1_RUN_DIR:=${REPO_ROOT}/cw-elevator-application-V1.0.0.20211103}"
|
||
CW_LIB="${V1_RUN_DIR}/cw_lib"
|
||
|
||
# CFR:优先环境变量,其次仓库 artifacts
|
||
: "${CFR_JAR:=${REPO_ROOT}/artifacts/decompiled/v1-cfr-compare-20211103/cfr-0.152.jar}"
|
||
if [[ ! -f "$CFR_JAR" ]]; then
|
||
echo "ERROR: CFR not found: $CFR_JAR" >&2
|
||
echo "Set CFR_JAR to a local cfr-*.jar path." >&2
|
||
exit 1
|
||
fi
|
||
|
||
# 输出根目录(可用环境变量覆盖)
|
||
: "${V1_DECOMP_OUT:=${MV_ROOT}/tools/v1-decompiled/cfr-from-cw-lib}"
|
||
TIMESTAMP="$(date +%Y%m%d-%H%M%S)"
|
||
OUT="${V1_DECOMP_OUT}-${TIMESTAMP}"
|
||
FINAL_LINK="${MV_ROOT}/tools/v1-decompiled/cfr-from-cw-lib-current"
|
||
|
||
MODULES=(
|
||
"cw-elevator-application-common-1.0-SNAPSHOT.jar"
|
||
"cw-elevator-application-data-1.0-SNAPSHOT.jar"
|
||
"cw-elevator-application-service-1.0-SNAPSHOT.jar"
|
||
"cw-elevator-application-web-1.0-SNAPSHOT.jar"
|
||
)
|
||
|
||
echo "V1 cw_lib: $CW_LIB"
|
||
echo "CFR: $CFR_JAR"
|
||
echo "Output: $OUT"
|
||
mkdir -p "$OUT"
|
||
|
||
for j in "${MODULES[@]}"; do
|
||
jar_path="${CW_LIB}/${j}"
|
||
if [[ ! -f "$jar_path" ]]; then
|
||
echo "WARNING: missing $jar_path — skip"
|
||
continue
|
||
fi
|
||
mod="${j%.jar}"
|
||
dest="${OUT}/${mod}"
|
||
mkdir -p "$dest"
|
||
echo ">>> Decompiling $j -> $dest"
|
||
java -jar "$CFR_JAR" "$jar_path" \
|
||
--outputdir "$dest" \
|
||
--silent true
|
||
done
|
||
|
||
# 可选:V1 fat jar(体积大,默认关闭)
|
||
if [[ "${DECOMPILE_V1_FAT_JAR:-0}" == "1" ]]; then
|
||
FAT="${V1_RUN_DIR}/cw-elevator-application-V1.0.0.20211103.jar"
|
||
if [[ -f "$FAT" ]]; then
|
||
echo ">>> Decompiling fat jar (may take several minutes)..."
|
||
java -jar "$CFR_JAR" "$FAT" \
|
||
--outputdir "${OUT}/cw-elevator-application-V1.0.0.20211103-fat" \
|
||
--silent true
|
||
else
|
||
echo "WARNING: fat jar not found: $FAT"
|
||
fi
|
||
fi
|
||
|
||
# 写元数据
|
||
{
|
||
echo "generated_utc: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
||
echo "v1_run_dir: $V1_RUN_DIR"
|
||
echo "cfr_jar: $CFR_JAR"
|
||
echo "modules:"
|
||
for j in "${MODULES[@]}"; do echo " - $j"; done
|
||
} > "${OUT}/MANIFEST.txt"
|
||
|
||
ln -sfn "$OUT" "$FINAL_LINK"
|
||
echo ""
|
||
echo "Done. Latest symlink: $FINAL_LINK -> $OUT"
|
||
echo "Manifest: ${OUT}/MANIFEST.txt"
|