注:首先你有一个服务器并且已经搭好jenkins了
关于jenkins的搭建这里就不细说了,这里我将简述怎么用jenkins构建一个SpringBooot项目
一,准备工作
1.进入jenkins的后台,登录之后便是这样的

2.在Jenkins中安装需要的插件,包括git,maven等相关的插件
一般需要两个插件:GitHub Plugin 或 Gitee Plugin (我这里用的是gitee仓库) , Maven Integration plugin


3.配置全局工具,配置git和自动安装的maven


二、创建项目
1.准备工作做完了,接下来就是正题了,在构建项目之前想必你已经拥有一个springboot项目和一个服务器了吧

2.源码管理


指定分支就没什么好说的,看你需要构建哪个分支的项目
3.Build

Root POM :pom.xml
Goals and options : clean package -Dmaven.test.skip=true
4.Post Steps ,这一步很重要,涉及到一个的自动化构建过程
简单描述一下,首先拿到jenkins从git上拉下来的包,将包复制到我们的目标目录,进入到这个目录然后启动。在这里有一个值得注意的地方,项目启动是会占用一个端口的,所以为了避免我们构建更新后的项目出现端口被占用的情况,我们先要获取这个端口的pid,kill这个pid,然后重新启动新的项目,在这里我们将每一次启动端口的pid记录下来,放在一个文件里面,每次启动项目的时候先kill这个pid,如下图:

构建脚本如下:
#!/bin/bash
#export BUILD_ID=dontKillMe这一句很重要,这样指定了,项目启动之后才不会被Jenkins杀掉。
export BUILD_ID=dontKillMe
#指定最后编译好的jar存放的位置
project_path=/root/target
#Jenkins中编译好的jar位置
jar_path=/var/lib/jenkins/workspace/nopava-Secret/target
#Jenkins中编译好的jar名称
jar_name=nopava.jar
#获取运行编译好的进程ID,便于我们在重新部署项目的时候先杀掉以前的进程
pid=$(cat /root/web.pid)
#杀掉对应的进程,如果pid不存在,则不执行
if [ -n "$pid" ]; then
kill -9 $pid;
fi
#进入指定的编译好的jar的位置
cd ${jar_path}
#将编译好的jar复制到最后指定的位置
cp ${jar_path}/${jar_name} ${project_path}
#进入最后指定存放jar的位置
cd ${project_path}
#启动jar,后台启动
java -jar ${jar_name} &
#将进程ID存入到ufind-web.pid文件中
echo $! > /root/web.pid
5.保存退出后就可以构建了

点击项目进入到构建页面,经过打包运行后,你的项目就构建成功啦!

蓝色圆点表示构建成功了,小太阳表示构建成功的概率,概率越高,天气越晴朗。
6.如果发现构建失败的情况,可以在进入到控制台看看报错信息

网友评论