Some checks failed
aagro-ui-admin CI / build (14.x) (push) Has been cancelled
aagro-ui-admin CI / build (16.x) (push) Has been cancelled
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
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 "部署完成!" |