mirror of
https://github.com/hpd840321/starRiverProperty.git
synced 2026-06-10 00:40:30 +08:00
e8672a3c7b
Former-commit-id: dc30d42a8c55ed8b2382a41dc2434233fbed9930
60 lines
2.8 KiB
Bash
Executable File
60 lines
2.8 KiB
Bash
Executable File
#!/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_REL="${MAVEN}/releases/v2.0.0/cw-elevator-application-2.0.0.jar"
|
||
V2_TGT="${MAVEN}/cw-elevator-application-starter/target/cw-elevator-application-2.0.0.jar"
|
||
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 或放入 releases):" >&2
|
||
echo " $V2_TGT 或 $V2_REL" >&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/cw-elevator-application-2.0.0.jar"
|
||
|
||
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.jar(STORE,对拍专用)"
|
||
fi
|
||
fi
|
||
|
||
echo "OK: V1 -> deploy/v1-legacy/"
|
||
echo "OK: V2 -> deploy/v2-maven/"
|
||
ls -la "${DEPLOY}/v1-legacy/"*.jar "${DEPLOY}/v2-maven/"*.jar
|