前言:随着互联网架构的快速发展,传统的一个war包打天下的场景逐渐被微服务所替代,而是将项目按照业务拆分成多个微服务。一般情况下微服务都是将项目打成jar包,然后部署,今天主要分享的是如何使用jenkins部署jar包,与传统的war包部署的方式还是有差异,因为部署war包只要将war包扔到tomcat中即可,而jar包需要使用java -jar xxx.jar才能运行起来
一、jenkins环境搭建
jenkins部署jar包和部署war前半部分的配置基本是一样的,如果对jenkins完全不太了解的可以参考我的另外一篇博客(jenkins+maven+svn自动部署和发布(超详细,图文并茂),上面有jenkins的环境搭建、配置等,这里就不再重述。
二、部署jar包
1、新建任务
2、配置
上面重点在于执行shell脚本,起始脚本看上去也是比较简单,stop.sh主要是停止当前的进程、replace.sh主要是备份的作用、startup.sh这个起始就是运行java -jar xxx.jar。到这里页面上算是配置完成了,接下来看看上面三个shell脚本的内容
(1)stop.sh
<h
#!/bin/bash
cd /wwwroot/springboot/deviceMonitor
echo "Stopping SpringBoot Application for deviceMonitor"
ls
pid=`ps -ef | grep DeviceMonitorBoot-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
#!kill -9 强制终止
echo "kill -9 的pid:" $pid
kill -9 $pid
fi
其实就是kill掉当前的进程
(2)replace.sh
r_name=DeviceMonitorBoot-0.0.1-SNAPSHOT.jar
#!编译好的jar包存放地址
file_path=/var/lib/jenkins/workspace/DeviceMonitorMaven/target/
#!将现有的jar备份后,将新的jar包替换
file="/wwwroot/springboot/DeviceMonitorBoot-0.0.1-SNAPSHOT.jar"
if [ -f "$file" ]
then
mv /wwwroot/springboot/deviceMonitor/DeviceMonitorBoot-0.0.1-SNAPSHOT.jar /wwwroot/springboot/deviceMonitorbackup/DeviceMonitorBoot-0.0.1-SNAPSHOT.jar.`date +%Y%m%d%H%M%S`
fi
cp /var/lib/jenkins/workspace/DeviceMonitorMaven/target/DeviceMonitorBoot-0.0.1-SNAPSHOT.jar /wwwroot/springboot/deviceMonitor
这里只是备份文件,然后将最新的jar包拷贝到指定目录下
(3)startup.sh
echo "执行....."
#移动jar文件到指定目录
cp /var/lib/jenkins/workspace/DeviceMonitorMaven/target/DeviceMonitorBoot-0.0.1-SNAPSHOT.jar /wwwroot/springboot/deviceMonitor
cd /wwwroot/springboot/deviceMonitor/
chmod 777 /wwwroot/springboot/deviceMonitor/DeviceMonitorBoot-0.0.1-SNAPSHOT.jar
java -jar DeviceMonitorBoot-0.0.1-SNAPSHOT.jar
echo "**********************deviceMonitor on jenkins started*************************"
最终就是赋权限,然后java -jar运行而已
好了到这里配置就已经结束了,直接在界面上点击构建就行了,其实也蛮简单的,就是写shell脚本对于没写过的人来说不太会写