jenkins 自动化部署springboot项目

mac2024-05-25  51

本文主要实现的是 jenkins + svn + maven +springboot 自动化部署。。。

一、jenkins安装

  上篇文章已经介绍过了,点击查看

  补充一下:linux 下maven安装:https://blog.csdn.net/qq_28410283/article/details/81837151

二、具体步骤

参考博客:

https://blog.csdn.net/zjh_746140129/article/details/80904876

1、安装插件

 1.1、maven插件

  Maven Integration

1.2、svn插件

https://blog.csdn.net/zjh_746140129/article/details/80917791

1.3 、Publish Over插件

如果需要将web项目发布到tomcat下,还需要安装Deploy Plugin插件。

2、jdk、maven、svn全局配置

去掉自动安装

3、新建maven项目,并配置项目

进入项目配置,步骤依次如下:

源码管理:

 

配置打包指令:clean install -Dmaven.test.skip -U

设置构建脚本 

Jenkins会将代码从你配置的svn上down下来,然后copy到指定执行的文件夹内,然后执行启动,shell脚本: 

#!/bin/bash 

#export BUILD_ID=dontKillMe这一句很重要,这样指定了,项目启动之后才不会被Jenkins杀掉。 export BUILD_ID=dontKillMe

#指定最后编译好的jar存放的位置 www_path=/home/springboot

#Jenkins中编译好的jar位置 jar_path=/var/lib/jenkins/workspace/DevProject1/paymentCounter/target/

#Jenkins中编译好的jar名称 jar_name=paymentCounter.jar

#获取运行编译好的进程ID,便于我们在重新部署项目的时候先杀掉以前的进程 pid=$(cat /home/springboot/paymentCounter.pid)

#进入指定的编译好的jar的位置 cd  ${jar_path}

#将编译好的jar复制到最后指定的位置 cp  ${jar_path}/${jar_name} ${www_path}

#进入最后指定存放jar的位置 cd  ${www_path}

#杀掉以前可能启动的项目进程 kill -9 ${pid}

echo "清除之前的进程已完成..."

#启动jar,指定SpringBoot的profiles为test,后台启动 #java -jar -Dspring.profiles.active=test ${jar_name} & nohup java -jar ${jar_name} &

#将进程ID存入到shaw-web.pid文件中 echo $! > /home/springboot/paymentCounter.pid

echo "当前web项目启动完成..."

4、立即构建

https://blog.csdn.net/pucao_cug/article/details/82531681

在开发中,往往svn服务器和jenkins服务器、部署服务器不在同一个服务器上,这时候需要远程部署项目,而Publish SSH这个插件就是实现远程部署,步骤如下:

https://blog.csdn.net/u011781521/article/details/80214746

a、配置ssh

 

b、创建任务,流程大致同上

有所区别的是,选择ssh

以下是我的shell脚本 

 

 c、点击构建,查看控制台日志

采坑记录:jar确实上传到服务器了,但是jar进程没有起成功。。。

参考博客:https://blog.csdn.net/ypp91zr/article/details/89049498

shell执行脚本:

#!/bin/bash echo "开始执行运行脚本" source ~/.bash_profile

#这一句很重要,这样指定了,项目启动之后才不会被Jenkins杀掉。 export  BUILD_ID=dontKillMe #判断是否启动,杀死之前的进程 pid=`ps -ef | grep paymentCounter-0.0.1-SNAPSHOT.jar  | grep -v grep | awk '{print $2}'` if [ -n "$pid" ] then    echo "Service running"    echo "stoping......"    kill -9 $pid    echo "stoping success" fi echo "授予当前用户权限" chmod 777 /home/springboot/paymentCounter-0.0.1-SNAPSHOT.jar ##jar运行 nohup java -jar 命令 nohup  java -jar /home/springboot/paymentCounter-0.0.1-SNAPSHOT.jar  &  echo '执行构建完成'  

 

最新回复(0)