自动打包部署test服务器,idea远程debug

本文介绍如何使用IDEA 2018版及以后版本,在本地进行远程服务器上的SpringBoot应用调试,包括自动部署插件配置、脚本编写及远程调试步骤。

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

背景

  1. 完成新需求,关联的服务过多(均以spring boot为服务),本机电脑启动太多,无法调试,过于卡(卑微)
  2. 希望能放在自己的服务器上进行处理,但是想打debug,希望能在idea里面调试。
  3. 不希望进行服务器太多操作

工具

  1. idea(2018版之后的,因为远程链接支持2018之后的)
  2. 一台服务器,随便什么,自己测试用的(端口也要开放)
  3. 远程装jdk,我用的都是1.8,如果是超过8的,或者低于4的下面java_opt参数要选择下的

第一步:完成自动部署

  1. 这里利用一个插件Alibaba Cloud Toolkit帮助完成自动部署
  2. 安装插件,File | Settings | Plugins 下,搜索Alibaba Cloud Toolkit,安装,重启
  3. 然后配置,
  4. 在这里插入图片描述
  5. 在这里插入图片描述
  6. 新增一个
  7. 在这里插入图片描述
  8. 在这里插入图片描述
  9. 在这里插入图片描述
  10. 编写脚本(注:所有的{东西}包含大括号都要改的)

#!/bin/sh
APP_NAME={这里填写jar包的名字}
APP_PORT={这里是jar包跑起来的端口}
APP_LISTTEN={这里是idea本地的端口监听}
APP_LOG={这里是日志输出路径}
# 这里是关闭当前jar包
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Stop Process...'
    kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Kill Process!'
    kill -9 $tpid
else
    echo 'Stop Success!'
fi
rm -f tpid
# 这里是启动jar
if [ ! -d $APP_LOG ];then
  touch $APP_LOG
fi  
nohup java -Xms256m -Xmx256m -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$APP_PORT $APP_NAME --server.port=$APP_PORT > $APP_LOG 2>&1 &
echo $! > tpid
echo Start Success!
  1. 上述完成,则成功,idea运行则可以自动打包上传,部署(不是正式的)

idea远程debug

  1. 在这里插入图片描述
  2. 在这里插入图片描述
    在这里插入图片描述
    出现上述两个图标,先运行上面那个,然后再运行下面那个,则成功

问题:还有一个日志查看,我是idea直接链接过去查看,不太方便

方法二:还有一种就是不依靠插件,直接通过idea自带,远程服务器装maven,将项目代码同步到服务器上面,然后maven直接跑起来,本地再连接(不想把代码扔到上面,所以没这么去操作,看个人喜欢)

稍微升级下,共用一个脚本命令启动(之前每个都设置多个脚本命令,太痛苦了,所以,就用单个的就行了)


#!/bin/sh
echo 'start sh'
while getopts ":a:b:c:d:" opt
do
    case $opt in
        a)
        echo "参数a的值$OPTARG"
        APP_NAME=$OPTARG
        ;;
        b)
        echo "参数b的值$OPTARG"
        APP_PORT=$OPTARG
        ;;
        c)
        echo "参数c的值$OPTARG"
        APP_LISTEN=$OPTARG
        ;;
        d)
        echo "参数d的值$OPTARG"
        APP_LOG=$OPTARG
        ;;
        ?)
        echo "未知参数"
        exit 1;;
    esac
done

stauts(){
   echo "进入查询"
   pid=`ps -ef|grep $APP_NAME|grep -v grep|grep java |awk '{print $2}' `
   #如果不存在返回1,存在返回0     
   if [ -z "${pid}" ]; then
        echo "不存在"
    return 1
   else
        echo "存在"
     return 0
   fi
}

stopService(){
   echo "进入关闭"
   stauts
        echo $?
   if [ $? == 0 ]; then
     kill -9 $pid
   else
     echo "${APP_NAME} is not running"
   fi
}

startService(){
   echo "进入启动"
   stauts
   if [ $? == 0 ]; then
     echo "${APP_NAME} is already running. pid=${pid} ."
   else
     echo "启动项目"
     nohup java -Xms256m -Xmx256m -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$APP_LISTEN $APP_NAME --server.port=$APP_PORT > $APP_LOG 2>&1 &
     echo "${APP_NAME} start success"
   fi
}

restartService(){
   echo "进入重启"
   stopService
        sleep 5
   startService
}

restartService

其中启动的参数在Deploy To Host里面启动脚本命令后面设置下就行

sh 路径/xxx.sh -a jar包名 -b 启动的端口号  -c 远程监听的端口号 -d 日志输出路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值