49 lines
1.4 KiB
Bash
49 lines
1.4 KiB
Bash
|
|
#!/usr/bin/env bash
|
|||
|
|
|
|||
|
|
set -euo pipefail
|
|||
|
|
|
|||
|
|
# 基本配置:可通过环境变量覆盖
|
|||
|
|
SERVER="${SERVER:-root@101.35.149.39}"
|
|||
|
|
TARGET_DIR="${TARGET_DIR:-/opt/fucai}"
|
|||
|
|
JAVA_OPTS="${JAVA_OPTS:--Xms256m -Xmx512m}"
|
|||
|
|
PROFILE="${PROFILE:-dev}"
|
|||
|
|
|
|||
|
|
# 模块与服务信息
|
|||
|
|
JAR_PATTERN="com-admin-client/target/*-SNAPSHOT.jar"
|
|||
|
|
SERVICE_NAME="fucai-admin.service"
|
|||
|
|
ENV_FILE_REMOTE="${TARGET_DIR}/admin.env"
|
|||
|
|
|
|||
|
|
echo "==> 步骤1:Maven 打包(跳过测试)"
|
|||
|
|
mvn -T 1C -pl com-admin-client -am clean package -DskipTests
|
|||
|
|
|
|||
|
|
echo "==> 步骤2:定位打包产物"
|
|||
|
|
JAR_LOCAL=$(ls ${JAR_PATTERN} | head -n 1)
|
|||
|
|
if [[ -z "${JAR_LOCAL}" ]]; then
|
|||
|
|
echo "未找到 JAR:${JAR_PATTERN}" >&2
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
JAR_NAME=$(basename "${JAR_LOCAL}")
|
|||
|
|
echo "ADMIN JAR: ${JAR_LOCAL}"
|
|||
|
|
|
|||
|
|
echo "==> 步骤3:创建远端目录 ${TARGET_DIR}"
|
|||
|
|
ssh "${SERVER}" "mkdir -p ${TARGET_DIR}"
|
|||
|
|
|
|||
|
|
echo "==> 步骤4:上传 JAR(保留原始文件名)"
|
|||
|
|
scp "${JAR_LOCAL}" "${SERVER}:${TARGET_DIR}/${JAR_NAME}"
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
echo "==> 步骤7:重载/启用并重启服务"
|
|||
|
|
ssh "${SERVER}" " systemctl restart ${SERVICE_NAME} && systemctl status ${SERVICE_NAME} --no-pager -n 0 || true"
|
|||
|
|
|
|||
|
|
echo "==> 完成:${SERVICE_NAME} 已部署并重启"
|
|||
|
|
|
|||
|
|
cat <<EOF
|
|||
|
|
可选环境变量:
|
|||
|
|
- SERVER=root@101.35.149.39
|
|||
|
|
- TARGET_DIR=/opt/fucai
|
|||
|
|
- JAVA_OPTS="-Xms512m -Xmx1024m"
|
|||
|
|
- PROFILE=dev
|
|||
|
|
使用示例:
|
|||
|
|
SERVER=root@101.35.149.39 PROFILE=dev bash deploy/deploy-admin.sh
|
|||
|
|
EOF
|