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