Files
aiotagro-mini/deploy.sh

59 lines
1.7 KiB
Bash
Raw Permalink Normal View History

#!/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 "部署完成!"