Jenkins+Maven+Github+Springboot实现可持续自动部署

一、安装内容

Jenkins(主要安装)、Maven、Git、JDK(这个三个安装过程略)

  Jenkins与Github配合实现持续集成需要注意以下几点:

    ①Jenkins要部署到外网,因为内网Github是无法访问到的,这里我租用的是阿里云的服务器实现。

    ②Jenkins所在的主机需要安装Git,通过Git程序从Github上clone代码

    ③在Jenkins中需要指定Git、Maven、JDK,路子都是相同的。

    ④在Github上使用每一个repository的webhook方式远程触发jenkins构建

    ⑤在Jenkins内关闭“防止跨站点请求伪造”

二、实现过程

img

使用Jenkins:

  ①同样,业务代码还是需要开发人员来编写并commit或push至版本控制自服务器(SVN、Git)

  ②通过以上图,我们发现,Jenkins帮我们做了:拉取最新代码、打包、部署

  ③我们开发人员只需专注于:业务代码的编写

  ④一旦项目上线,bug修改等小改动问题,我们开发人员只需提交最新代码即可,另一边的测试或最终用户就能看到最终效果,大大减少我们开发人员的工作量

三、gitee仓库准备

image-20220413164030215

四、Jenkins的下载安装

1.Jenkins的war包下载

下载Jenkins的war直接丢进tomcat的webapps目录即可完成部署。

image-20220413164504867

2.将war包丢进服务器的tomcat/webapps目录,浏览器访问:IP:端口/jenkins

img

配置完成出现以下界面说明url配置完成!

image-20220413164751394

3.推荐插件安装

img

4.创建用户

image-20220413164930784

5.实例配置

img

6.开始使用

img

7.进入首页

img

五、Jenkins的配置

1.插件配置

​ ①Maven Integration:新建job时有maven项目可以选择;
​ ②Deploy to container:将war包部署到tomcat所在的服务器上;
​ ③Publish Over SSH:通过ssh推送文件,并可以执行shell命令;
img

2.Maven、Git、JDK配置

点击:“系统管理”——>“全局工具配置”

img

六、新建Jenkins任务

1.点击“系统管理”—->“系统设置”,进行ssh配置

img

2.首页点击:“新建任务”

img

3.General配置

img

4.源码管理

img

5.构建触发器

img

6.Github配置WebHook,完成钩子程序的配置

img

7.构建环境

img

启动脚本restart.sh如下:

img

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
echo "stop服务开始"
pidlist=`ps -ef|grep jenkins-demo.jar | grep -v "grep"|awk '{print $2}'`
#ps -u $USER|grep "Java"|grep -v "grep"
if [ "$pidlist" = "" ]; then
echo "no jenkins-demo pid alive"
else
echo "jenkins-demo Id list :$pidlist"
for pid in ${pidlist}
{
kill -9 $pid
echo "KILL $pid:"
echo "service stop success"
}
fi
echo "stop服务脚本结束"
echo "start服务脚本开始"
JAVA_HOME=/usr/java/jdk1.8.0_181
dir=/opt/jenkins_jars
cd $dir
echo dir=$dir
jar=$(find /lib -type f -name *.jar)
classpath=$dir/*:$dir/lib/*:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
echo classpath=$classpath
echo ---------------------------------------------
nohup $JAVA_HOME/bin/java -classpath $classpath -XX:-UseGCOverheadLimit -Xms1024m -Xmx2048m -jar $dir/jenkins-demo.jar > $dir/log/$(date +'%Y%m%d').log &
echo "start服务脚本结束"

8.构建

img

七、测试任务

1.立即构建

img

2.控制台查看输出

img

img

4.IDEA修改该JSP页面,并推送至git仓库

image-20220413170734174

img

5.推送github后,触发钩子程序,jenkins自动构建任务

img