Archived
- Replace base64 JSON response with StreamingResponseBody (zero-buffer) - Error responses return JSON via GlobalExceptionHandler (400/404) - Add git-lfs track for *.docx to keep repo lean - Add deploy/deploy.sh: one-click build + restart - Add deploy/clean-lfs.sh: periodic LFS cache cleanup - Add deploy/gmp-service.service: systemd service unit - Remove unused ApiResponse and DocxExportData DTOs - Fix build.sh/run.sh jar name (gmp-mock-service -> gmp-service) - Add TemplateNotFoundException for missing templates
60 lines
1.5 KiB
Bash
Executable File
60 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# gmp-service 一键部署脚本
|
|
# 用法: ./deploy/deploy.sh
|
|
#
|
|
# 它会: 构建 -> 停止旧服务 -> 替换jar -> 启动新服务
|
|
|
|
set -e
|
|
|
|
PROJECT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
|
SERVICE_NAME="gmp-service"
|
|
JAR_SRC="$PROJECT_DIR/target/gmp-service.jar"
|
|
JAR_DST="/opt/$SERVICE_NAME/gmp-service.jar"
|
|
LOG_DIR="/var/log/$SERVICE_NAME"
|
|
|
|
echo "===== 1. Maven 构建 ====="
|
|
cd "$PROJECT_DIR"
|
|
mvn clean package -DskipTests
|
|
|
|
if [ ! -f "$JAR_SRC" ]; then
|
|
echo "构建失败,未生成 JAR 文件"
|
|
exit 1
|
|
fi
|
|
|
|
echo "===== 2. 停止旧服务 ====="
|
|
if systemctl is-active --quiet "$SERVICE_NAME"; then
|
|
sudo systemctl stop "$SERVICE_NAME"
|
|
echo "旧服务已停止"
|
|
else
|
|
echo "服务未运行,跳过"
|
|
fi
|
|
|
|
echo "===== 3. 部署新 JAR ====="
|
|
sudo mkdir -p /opt/$SERVICE_NAME "$LOG_DIR"
|
|
sudo cp "$JAR_SRC" "$JAR_DST"
|
|
sudo chmod 644 "$JAR_DST"
|
|
|
|
echo "===== 4. 启动服务 ====="
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable "$SERVICE_NAME"
|
|
sudo systemctl start "$SERVICE_NAME"
|
|
|
|
echo "===== 等待服务启动 ====="
|
|
sleep 3
|
|
|
|
if systemctl is-active --quiet "$SERVICE_NAME"; then
|
|
echo "服务已成功启动!"
|
|
systemctl status "$SERVICE_NAME" --no-pager | head -15
|
|
else
|
|
echo "服务启动失败,查看日志: sudo journalctl -u $SERVICE_NAME -n 50 --no-pager"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "部署完成!"
|
|
echo " 服务: $SERVICE_NAME"
|
|
echo " JAR: $JAR_DST"
|
|
echo " 日志: journalctl -u $SERVICE_NAME -f"
|
|
echo " 端口: $(grep 'server.port' "$PROJECT_DIR/src/main/resources/application.yml" 2>/dev/null || echo '6666')"
|