Jenkins部署传统项目和Spring Boot项目

在开启进行项目不是前不清楚Jenkins的运作流程的话,可以先参考之前写的Jenkins的安装和使用(Centos7),里面有一张Jenkins的运作流程图,个人觉得还是画的比较清楚的。

在此之前一定保证需要用到的基本插件都安装完成,并且在jenkins端进行配置,主要包括git客户端maven

1、War包部署到远程Tomcat

待更新

2、部署Spring Boot项目

    Spring Boot项目是内嵌的Tomcat(jetty等)服务器,所以不像传统的项目那样去启动服务器,大致流程如下:

1、选择项目使用的jdk

    由于项目关系,比如我们最近的项目需要使用不同的jdk(jdk8和jdk11)对不同的项目进行编译。所以可以在Jenkins的Global Tool Configuration中配置多个jdk,然后在项目配置的时候选择对应的jdk版本,如下:

选择项目的jdk版本:

2、使用本地git客户端,使用配置的远程git地址去对应的Branch(分支)上拉去代码

在创建一个新的job的时候,即 New Item的时候,会选择自己的git远程地址,我们以gitlab为例 

2、使用本地的maven进行打包

在配置maven的时候可以选择已经配置的全局maven,但是可以指定默认的maven的(repository和setting.xml信息),如下:

3、经过Jenkins的pipeline中的插件处理

该步骤是一些自定义的插件,可以没有。

4、执行Post Steps的Exec command命令进行处理

在配置执行命令前需要现在Jenkins的 Manage Jenkins 下的Configure System中进行配置需要实行ssh的多个服务器列表,如下:

配置每一个应用的时候配置大致如下:

大致命令流程包括:

1)、将远程进程杀死

2)、推包

3)、启动服务

如下是之前的项目的执行脚本,其中export SPRING_PROFILES_ACTIVE=test是设置环境变量的方式让服务启动时,启动Spring的profiles选择test。

#! /bin.bash
echo "Stopping SpringBoot Application"
export SPRING_PROFILES_ACTIVE=test
jarfile=qr-contract-1.0.0-SNAPSHOT.jar
pid=`ps -ef | grep  $jarfile | grep -v grep | awk '{print $2}'`
echo $pid
echo "--------kill start--------------"
if [ -n "$pid" ]
then
   echo "kill -9 的pid:" $pid
   kill -9 $pid
fi
echo "--------kill finish-----------------"
echo "--------replace start--------------"
DATE=$(date +%Y%m%d%H%M%S)
mv /root/$jarfile /usr/local/project/$jarfile.$DATE.bak
mv /usr/local/project/$jarfile /root/
echo "--------replace finish-----------------"
echo "Execute shell Finish"



#sh /usr/local/project/start.sh
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.3.7-0.el7_6.x86_64
echo "Executing program....."
nohup ${JAVA_HOME}/bin/java -server -Dfile.encoding=UTF-8 -Xms1024m -Xmx1024m 
-XX:PermSize=128m -XX:MaxPermSize=256m -verbose:gc -Xloggc:/root/logs/gc.log`date 
+%Y%m%d-%H%M` -XX:+UseG1GC -jar  /root/$jarfile nohup.log 2>&1 &

猜你喜欢

转载自blog.csdn.net/it_lihongmin/article/details/93890620