From 2c51bc59e78ead265b39db24abe49e46cef0d0d6 Mon Sep 17 00:00:00 2001 From: Wonder Date: Sat, 25 Oct 2025 20:06:33 +0800 Subject: [PATCH] =?UTF-8?q?=20=F0=9F=94=84Update:=20=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E9=83=A8=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy.sh | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ pom.xml | 17 ++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 deploy.sh diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..32ba8d3 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,77 @@ +#!/bin/bash + +# 设置变量 +REPO_URL="http://47.121.181.112:3000/wonder/stardew-valley.git" +PROJECT_DIR="/opt/stardew-valley" +MAVEN_CMD="mvn clean package -Dmaven.test.skip=true" # 跳过测试(编译 & 执行都跳过) +APP_NAME="stardew-valley" # PM2 中的应用名称 +JAR_FILE="" +DEPLOY_DIR="/opt/stardew-valley/target" # 你可以指定部署目录,也可以直接使用 target 目录 + +# 检查依赖是否安装 +if ! command -v git &> /dev/null; then + echo "错误:Git 未安装,请先安装 Git。" + exit 1 +fi + +if ! command -v mvn &> /dev/null; then + echo "错误:Maven 未安装,请先安装 Maven。" + exit 1 +fi + +if ! command -v pm2 &> /dev/null; then + echo "错误:PM2 未安装,请先安装 PM2。" + exit 1 +fi + +# 克隆或拉取代码 +echo "正在克隆或拉取仓库 $REPO_URL 到 $PROJECT_DIR ..." +if [ -d "$PROJECT_DIR" ]; then + echo "目录 $PROJECT_DIR 已存在,正在拉取最新代码..." + cd "$PROJECT_DIR" || { echo "无法进入目录 $PROJECT_DIR"; exit 1; } + git pull origin main +else + git clone "$REPO_URL" "$PROJECT_DIR" +fi + +# 进入项目目录 +cd "$PROJECT_DIR" || { echo "无法进入目录 $PROJECT_DIR"; exit 1; } + +# 执行 Maven 构建(跳过测试) +echo "正在执行 Maven 构建(跳过测试)..." +$MAVEN_CMD + +# 检查构建是否成功 +if [ $? -ne 0 ]; then + echo "Maven 构建失败,退出脚本。" + exit 1 +fi + +# 查找生成的 JAR 文件 +JAR_FILE=$(find "$PROJECT_DIR/target" -type f -name "*.jar" | head -n 1) + +if [ -z "$JAR_FILE" ]; then + echo "未找到 JAR 文件,构建可能失败或项目类型不识别。" + exit 1 +fi + +echo "找到 JAR 文件: $JAR_FILE" + +# 部署文件(可选,也可直接在 target 目录下启动) +# 可以选择是否拷贝到其他目录(比如 /opt/stardew-valley/app/) +# 如果你不需要部署到其他目录,可以直接使用 target 目录 + +echo "部署 JAR 文件到 $DEPLOY_DIR ..." +# 如果你不需要复制,可以去掉这一行 +# cp "$JAR_FILE" "$DEPLOY_DIR/" + +# 删除旧的 PM2 进程 +echo "删除 PM2 中的旧进程 $APP_NAME..." +pm2 delete "$APP_NAME" > /dev/null 2>&1 + +# 启动 Java 应用 +echo "正在启动 Java 应用..." +pm2 start "java -jar $JAR_FILE" --no-daemon --name "$APP_NAME" + +# 提示信息 +echo "部署和启动完成!" diff --git a/pom.xml b/pom.xml index 8bb0832..07d960d 100644 --- a/pom.xml +++ b/pom.xml @@ -70,4 +70,21 @@ test + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.4.1 + + + + com.wonderland.stardewvalley.Application + + + + + +