🔄Update: 脚本部署
This commit is contained in:
@@ -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 "部署和启动完成!"
|
||||
@@ -70,4 +70,21 @@
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.4.1</version>
|
||||
<configuration>
|
||||
<archive>
|
||||
<manifest>
|
||||
<mainClass>com.wonderland.stardewvalley.Application</mainClass>
|
||||
</manifest>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
||||
Reference in New Issue
Block a user