前言:随着互联网架构的快速发展,传统的一个 war 包打天下的场景逐渐被微服务所替代,而是将项目按照业务拆分成多个微服务。一般情况下微服务都是将项目打成 jar 包,然后部署,今天主要分享的是如何使用 jenkins 部署 jar 包,与传统的 war 包部署的方式还是有差异,因为部署 war 包只要将 war 包扔到 tomcat 中即可,而 jar 包需要使用 java -jar xxx.jar 才能运行起来

本次我们自动化配置 springboot 项目

Jenkins部署jar包(转) - 图1

Jenkins部署jar包(转) - 图2

2 部署 jar 包

2.1 新建任务

Jenkins部署jar包(转) - 图3

Jenkins部署jar包(转) - 图4

老铁如果你没有 Maven 这个选项,你需要安装 Maven 项目插件:Maven Integration plugin 。插件安装方式请参考:《Jenkins 安装 By CentOS7

2.2 配置 jar 自动化

Jenkins部署jar包(转) - 图5

Jenkins部署jar包(转) - 图6

Jenkins部署jar包(转) - 图7

Jenkins部署jar包(转) - 图8

Jenkins部署jar包(转) - 图9

配置结束。

上面重点在于执行 shell 脚本,起始脚本看上去也是比较简单,startup.sh 这个脚本里面才是精华,自动停止已经在运行的 jar 服务,然后启动 java -jar 运行而已。到这里页面上算是配置完成了,接下来看看上面三个 shell 脚本的内容

(1)Jenkins 内的 shell 脚本

  1. echo '开始将打包好的jar服务放到运行目录'cp ${WORKSPACE}/zcsjw-admin/target/zcsjw-admin.jar /home/zcsjw/springboot/home/zcsjw/springboot/startup.sh

(2)/home/zcsjw/springboot/startup.sh 自动启停脚本

  1. echo "kill process zcsjw-admin.jar"ps -ef | grep java | grep zcsjw-admin.jar |grep -v grep| awk '{print "kill ", $2;}' | shchmod 755 /home/zcsjw/springboot/zcsjw-admin.jarecho "进入jar工作空间 zcsjw-admin.jar...."cd /home/zcsjw/springbootecho "准备启动 zcsjw-admin.jar 服务...."nohup java -jar /home/zcsjw/springboot/zcsjw-admin.jar &echo " zcsjw-admin.jar 服务启动成功...."
  1. project_name="zcsjw-service-api.jar"project_path="/home/zcsjw/springboot"echo "kill process " $project_nameps -ef | grep java | grep $project_name |grep -v grep| awk '{print "kill ", $2;}' | shchmod 755 $project_path/$project_nameecho "进入jar工作空间 .... " $project_path/$project_nameecho "准备启动 " $project_name " 服务...."nohup java -jar $project_path/$project_name &echo $project_name " 服务启动成功...."

Jenkins部署jar包(转) - 图10 https://blog.csdn.net/yexiaomodemo/article/details/114003308 ```