59 lines
1.7 KiB
Bash
59 lines
1.7 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
|
|||
|
|
# 部署脚本用于将项目部署到远程服务器
|
|||
|
|
# 配置信息
|
|||
|
|
REMOTE_HOST="192.168.0.95"
|
|||
|
|
REMOTE_USER="root"
|
|||
|
|
REMOTE_PASSWORD="aiotagro"
|
|||
|
|
REMOTE_DIR="/data/java/aiotagro"
|
|||
|
|
|
|||
|
|
# 本地项目路径
|
|||
|
|
LOCAL_PROJECT_DIR="E:/vue/aiotagro-mini"
|
|||
|
|
|
|||
|
|
echo "开始部署项目到远程服务器..."
|
|||
|
|
|
|||
|
|
# 打包项目 (需要本地安装Maven)
|
|||
|
|
echo "正在打包项目..."
|
|||
|
|
cd "$LOCAL_PROJECT_DIR"
|
|||
|
|
mvn clean package -Dmaven.test.skip=true
|
|||
|
|
|
|||
|
|
if [ $? -ne 0 ]; then
|
|||
|
|
echo "项目打包失败,请确保已安装Maven并配置环境变量"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 获取打包后的jar文件路径
|
|||
|
|
JAR_FILE=$(find aagro-server/target -name "*.jar" | head -n 1)
|
|||
|
|
|
|||
|
|
if [ -z "$JAR_FILE" ]; then
|
|||
|
|
echo "未找到打包后的jar文件"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo "找到jar文件: $JAR_FILE"
|
|||
|
|
|
|||
|
|
# 创建远程目录
|
|||
|
|
echo "创建远程目录..."
|
|||
|
|
sshpass -p "$REMOTE_PASSWORD" ssh "$REMOTE_USER@$REMOTE_HOST" "mkdir -p $REMOTE_DIR"
|
|||
|
|
|
|||
|
|
# 上传jar文件和配置文件
|
|||
|
|
echo "上传文件到远程服务器..."
|
|||
|
|
sshpass -p "$REMOTE_PASSWORD" scp "$JAR_FILE" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/"
|
|||
|
|
sshpass -p "$REMOTE_PASSWORD" scp "aagro-server/src/main/resources/application-prod.yaml" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/"
|
|||
|
|
|
|||
|
|
# 上传启动脚本
|
|||
|
|
echo "上传启动脚本..."
|
|||
|
|
sshpass -p "$REMOTE_PASSWORD" ssh "$REMOTE_USER@$REMOTE_HOST" "cat > $REMOTE_DIR/start.sh << 'EOF'
|
|||
|
|
#!/bin/bash
|
|||
|
|
cd /data/java/aiotagro
|
|||
|
|
nohup java -jar *.jar --spring.profiles.active=prod > app.log 2>&1 &
|
|||
|
|
echo \"应用已启动\"
|
|||
|
|
EOF"
|
|||
|
|
|
|||
|
|
sshpass -p "$REMOTE_PASSWORD" ssh "$REMOTE_USER@$REMOTE_HOST" "chmod +x $REMOTE_DIR/start.sh"
|
|||
|
|
|
|||
|
|
# 启动应用
|
|||
|
|
echo "启动应用..."
|
|||
|
|
sshpass -p "$REMOTE_PASSWORD" ssh "$REMOTE_USER@$REMOTE_HOST" "cd $REMOTE_DIR && ./start.sh"
|
|||
|
|
|
|||
|
|
echo "部署完成!"
|