一、前期准备
1.1 Jenkins安装
参考教程:https://blog.csdn.net/weixin_41668084/article/details/113517910
1.2 SVN安装
参考教程:https://blog.csdn.net/weixin_41668084/article/details/113809495
1.3 svn创建项目
svnadmin create /home/svn/jenkins-svn
二、项目创建
2.1 构建一个Maven项目
![image-20210216171012815](https://gitee.com/gbc_sxy/imagebed/raw/master/img/20210216171014.png)
2.2 通用设置
![image-20210216214110276](https://gitee.com/gbc_sxy/imagebed/raw/master/img/20210216214111.png)
2.3 源码管理
![image-20210216214240033](https://gitee.com/gbc_sxy/imagebed/raw/master/img/20210216214241.png)
2.4 构建触发器
通常,有几种方式可以在SVN仓库发生改变时触发Jenkins进行构建。第一种是,Jenkins主动轮询SVN仓库;第二种是,在SVN客户端(如TortoiseSVN)创建客户端hooks来触发构建;第三种是,在SVN服务器端,创建仓库hooks来触发构建。而我所要介绍的就是这第三种。
![image-20210216214704904](https://gitee.com/gbc_sxy/imagebed/raw/master/img/20210216214706.png)
2.4.1 下载jenkins-cli.jar
![image-20210216215018714](https://gitee.com/gbc_sxy/imagebed/raw/master/img/20210216215019.png)
![image-20210216215321628](https://gitee.com/gbc_sxy/imagebed/raw/master/img/20210216215322.png)
2.4.2 上传文件
# 创建jenkins文件
[root@localhost hooks]# mkdir /usr/local/jenkins/
[root@localhost hooks]# cd /usr/local/jenkins/
[root@localhost jenkins]# ll
总用量 3340
-rwxr-xr-x 1 root root 3416756 2月 16 21:16 jenkins-cli.jar
[root@localhost jenkins]#
2.4.3 创建钩子(hook)
# 复制文件
cp post-commit.tmpl post-commit
# 修改文件权限
chmod +x psot-commit
![image-20210216215806330](https://gitee.com/gbc_sxy/imagebed/raw/master/img/20210216215807.png)
2.4.4 编写触发脚本
#编辑文件
vim post-commit
#修改内容
#!/bin/bash
source /etc/profile
java -jar /usr/local/jenkins/jenkins-cli.jar -s http://192.168.61.69:8080/ -auth root:root build jenkins-svn
#-s 后面是Jenkins地址
#-auth 账号密码
#build 是构建命令
#jenkins-svn 项目名称
2.5 构建环境
![image-20210216220527379](https://gitee.com/gbc_sxy/imagebed/raw/master/img/20210216220528.png)
2.5.1 启动脚本
#!/bin/bash
source /etc/profile
chmod 755 /app/svn/jenkins-svn.jar
count=`ps -ef|grep java|grep jenkins-svn.jar |awk '{print $2}'`
if [ $count -gt 0 ]; then
echo '原进程:'$count
echo '重新启动中...'
kill -9 $count
sleep 1
export BUILD_ID=dontKillMe
(java -jar /app/svn/jenkins-svn.jar > /app/svn/log/log.log 2>&1 &)
else
echo '启动中...'
sleep 1
export BUILD_ID=dontKillMe
(java -jar /app/svn/jenkins-svn.jar > /app/svn/log/log.log 2>&1 &)
fi
echo '现进程:' `ps -ef|grep java|grep jenkins-svn.jar |awk '{print $2}'`
2.6 项目构建
![image-20210216220719145](https://gitee.com/gbc_sxy/imagebed/raw/master/img/20210216220720.png)
2.7 项目启动
![image-20210216220820182](https://gitee.com/gbc_sxy/imagebed/raw/master/img/20210216220821.png)
2.8 控制台输出
![image-20210216220929697](https://gitee.com/gbc_sxy/imagebed/raw/master/img/20210216220930.png)
2.9 页面验证
![image-20210216220949438](https://gitee.com/gbc_sxy/imagebed/raw/master/img/20210216220950.png)
以上,请参考!