在 idea中集成Alibaba Cloud Toolkit ,实现项目自动部署,实时查看日志

本文介绍如何在IDEA中实现SpringBoot项目的自动化部署,包括免密连接服务器、SFTP上传文件、一键执行Maven命令进行打包部署及运行自定义脚本。同时,提供了详细的部署前后执行脚本示例,以及解决Linux执行.sh文件常见问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

功能

能够在idea中迅速连接到服务器(免密)
能够在idea中sftp文件,上传文件到服务器
能够在idea中一键执行maven命令,打包===>部署到服务器===>执行自己的运行脚本。

安装

在这里插入图片描述

配置host

在这里插入图片描述
在这里插入图片描述

自动化部署后端

通过maven构建的方式自动化部署后端

在这里插入图片描述
idea中的terminal实时查看日志,如果想设置按日滚动的日志文件,可以设置成例如:eureka-$(date +%Y-%m-%d).log
在这里插入图片描述

通过maven的方式部署多模块项目注意事项

在执行前需要添加两条maven命令

在这里插入图片描述

首先在最外层的模块添加如下命令

在这里插入图片描述

在生成jar包的模块添加如下命令

在这里插入图片描述

springboot项目(After deploy)部署后的执行脚本,注意脚本中 enviroment 变量

#!/bin/bash
# 加载环境变量
source /etc/profile

#部署的地址,将jar包上传到deploy
deploy_path="/opt/sh/project/"
#日志名称
log_name="test-$(date +%Y-%m-%d).log"
#运行环境,不过不需要这个,则将下文中的--spring.profiles.active=$enviroment删除
enviroment="prod"

back(){
  if [ ! -d $deploy_path ]; then
    mkdir $deploy_path
    echo "文件夹创建成功!"
  elif [ ! -f $log_name ]; then
    touch $log_name
    echo "日志文件创建成功!"
  fi
}

back
#启动方法
start(){
  echo "进入启动函数!"
  # 表示start方法后跟的第一个参数
  APP_NAME="$1";
#判断${APP_NAME}文件是否存在
  if [ ! -f $deploy_path$APP_NAME ];then
      echo "启动文件地址:$deploy_path$APP_NAME"
      echo "没有找到$APP_NAME启动文件!"
      return
  fi

  #进程是否启动,没启动直接启动,启动了就先关闭再重启,awk '{print $2}' 的作用就是打印(print)出第二列的内容,第二列正好是PID
  pid=$(ps -ef | grep -v 'grep' | egrep $APP_NAME| awk '{print $2}')
  # [ -z STRING ] 如果STRING的长度为零则返回为真,即空是真
  #如果不存在返回1,存在返回0
  if [ -z "${pid}" ]; then
    #不存在,直接启动
   $deploy_path$APP_NAME > /dev/null 2>&1 &
    nohup java -jar $deploy_path$APP_NAME --spring.profiles.active=$enviroment > $deploy_path$log_name 2>&1 &
    echo "不存在进程,项目启动成功!"
  else
    echo "项目$1已经启动,进程pid是${pid}!"
    echo "现在开始关闭进程,重启$APP_NAME!"
    for i in $pid
    do
            kill -9 $i
            echo "杀死进程$i成功!"
    done
    nohup java -jar $deploy_path$APP_NAME --spring.profiles.active=$enviroment > $deploy_path$log_name 2>&1 &
    echo "项目启动成功!"
  fi
}
# jar包的名称,对应start函数中的$1
start springboot.jar

sringboot项目(Before deploy)部署前的执行脚本,在Advanced中

#!/bin/bash
#删除之前上传的jar包
rm -rf /opt/project/rent-after/*

通过上传文件的方式自动化部署后端

选择jar包所在位置

在这里插入图片描述

添加执行前的maven命令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果是多模块的springboot项目,选择最外层的即可

在这里插入图片描述

vue项目自动化部署配置

通过上传文件的方式自动化部署后端

需要先手动构建,生成dist文件夹

添加执行前的npm命令

在这里插入图片描述
在这里插入图片描述

vue项目(Before deploy)部署前的执行脚本,在Advanced中
#!/bin/bash
#删除之前部署的vue项目
rm -rf /usr/local/nginx/html/vueproject/*
vue项目(After deploy)部署后的执行脚本
#!/bin/bash

cd /usr/local/nginx/html/
//复制上传的文件
cp -r dist/* vueproject
//删除dist文件夹
rm -rf dist

docker restart nginx

配置好之后点击run即可同步

在这里插入图片描述

执行shell脚本遇到的问题

Linux执行.sh文件,提示No such file or directory的问题。

解决办法:用vim打开该sh文件,输入:

[plain]

:set ff

回车,显示fileformat=dos,重新设置下文件格式:

[plain]

:set ff=unix

保存退出:

[plain]

:wq

再执行,OK了。

2、Result乱码的问题或vim policy.sh后中文乱码的问题,都是一个问题引起的,就是在新建policy.sh时,在记事本中要另存为选择UTF8编码格式才可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值