2-1.jenkins部署-自由风格方式
- 项目摘要:
- 需要一台linux虚拟机环境(本文是基于centerOS7),本内容基于文档https://blog.****.net/qq_25337221/article/details/106069147为基点。
- 本文档软件版本:
- git :1.8.3.1
- jdk 1.8.0
- Jenkins 2.222.3
- 小提示:经检测,上文的源码里关于pom.xml配置稍有问题,在本文源码下载已修正。
- 本文档仅是一个入门案例。
- 项目具体实施:
- 安装git
- 安装jdk
首先卸载自带jdk
yum remove *openjdk*
- 安装mysql
https://www.runoob.com/mysql/mysql-install.html
- 安装maven
首先卸载本地自带maven
# rm -rf /etc/maven
# rm -rf /usr/share/maven
有时候还会报错,将报错地址删除即可。
# tar -xf apache-maven-3.6.3-bin.tar.gz
mv apache-maven-3.6.3 /usr/local
vim /etc/profile
加入:
export MAVEN_HONE=/usr/local/apache-maven-3.6.3
export PATH=...:${MAVEN_HONE}/bin:$PATH
#source /etc/profile
# mvn -v
执行成功则maven安装成功
-
安装jenkins
- 进入网站:https://pkg.jenkins.io/redhat-stable/
- sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
- sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
- yum install jenkins
- systemctl start jenkins
- 浏览器输入http://ip:8080
- cd /var/lib/jenkins/secrets
- cat initialAdminPassword
- 操作:
-
选择推荐的安装 - 配置全局工具(JDK、git、maven)
击系统管理,选择全局工具配置,配置jdk。
配置git,不知道git地址可以执行下面这条命令查找,
# which git
maven配置
保存即可。
- 点击新建任务,选择构建一个自由风格的软件项目,任务名称为:springboot-demo-freestyle,点击确定。
配置General
- 配置源码管理
-
这里要注意,前提是ssh已生成,并且已经设置到GitHub可以拉取成功代码。
此时可以构建一下项目,观察时候构建成功。然后再进行下一步操作。
- 配置构建环境(构建触发器放到后面)
配置构建过程
<1>配置maven
目标: clean install -Dmaven.test.skip=true (截图有一点错误,install中间要有空格)
这里选择maven(自己配置的maven),不选择“默认”。
可以执行cd /var/lib/jenkins/workspace观察自己项目的路径来配置。如果是../构建项目名/pom.xml,则这里直接配置pom.xml即可。如果里面是自己的项目名.../pom.xml,则这里的地址从自己项目名这一步开始,直到pom.xml,这一步很容易出错。
这里也可以构建一次测试是否成功。
<2> 配置maven执行前
在“增加构建步骤”中选择“执行shell”,并将其挪至maven上面。
源码如下(项目名要改成自己的):
echo "Stopping SpringBoot Application"
pid=`ps -ef | grep user-service-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
<3>配置maven执行后
和上面一样,继续添加一个shell面板,加入如下代码:
#!/bin/bash -ile
project=user-service-0.0.1-SNAPSHOT.jar #这里需要替换成你jar包的名字
pathName=springboot-demo-freestyle/user-service #这里也替换成你的,每个人不一样
echo "拷贝文件"
rm -rf /usr/local/src/java/$project #删除旧的war包 (这是我的war路径,可以改成你的war包路径)
cp /var/lib/jenkins/workspace/$pathName/target/$project /usr/local/src/java/ #因为jenkins打包自动放在它自己的目录下,我就cp复制到了我定义的目录下 /usr/local/src/java/ 下
echo "切换路径"
cd /usr/local/src/java/
pid=`ps -ef | grep $project | grep -v grep | awk '{print $2}'` #杀掉原有项目进程
if [ -n "$pid" ]
then
kill -9 $pid
echo "杀死存在进程"
fi
BUILD_ID=dontKillMe
echo "执行"
nohup java -jar $project & #启动进程
echo "启动成功!"
这个时候,再构建一次项目,如果都没问题,可以在命令行检查项目运行情况,可以使用curl命令执行一下是否可以正常访问,再浏览器尝试访问。
端口使用情况命令:
# netstat -ntulp |grep 端口号
# lsof -i: 端口号
- 添加QQ邮件发送
<1>选择系统配置
<2> 配置Jenkins Location
<3>配置Extended E-mail Notification
首先需要去QQ邮箱开启发送功能,这部分参照QQ邮箱教程。
<4>配置邮件通知
<5> 保存切换到项目配置,在构建后操作选择增加构建后操作步骤,选择Editable Email Notification,如下配置:
至此,邮件配置完毕。如果要发送到slack比较简单,但是slack配置有一点要注意,测试连接前先保存,否则测试不成功。
- 添加构建触发器
这里使用了jenkins+gitHub方式,这种方式要求jenkins所在服务器一定要有公网ip,这一点要注意。
<1>在github网站配置webhooks
<2>生成Personal access tokens
选择github的setting,然后选择Developer settings,接着选择Personal access tokens,点击Generate new token,配置如下:
将生成的token复制保存好。
<3>配置jenkins
在系统配置里添加git服务器
有时候测试连接不一定可以成功,可以暂时忽略这个错误,继续后续操作。
<4>在自己的创建项目配置中的构建触发器中选择“GitHub hook trigger for GITScm polling”,有时候会有警告,这个问题暂时没找到怎么解决,但是它不影响触发事件。
<5>配置构建环境
此时,可以随便改几行代码,然后更新到gitHub,测试触发器是否触发项目构建。
- 添加参数化构建过程(略)
这里涉及到一个插件:Extended Choice Parameter
- 添加git参数化(略)
这里涉及到一个插件:Git Parameter
- 参考链接:
- jenkins中springboot项目脚本: https://blog.****.net/lcz134258/article/details/90632700
- Jenkins中邮件通知:
https://www.cnblogs.com/cmnz/p/9356282.html
- Jenkins+GitHub构建触发器:
https://blog.****.net/boling_cavalry/article/details/78943061
本内容源码及文档下载地址(除了源码,文档和本文一致,源码是2.1基础上改了一部分环境问题的配置):https://download.****.net/download/qq_25337221/12427514
本内容由安康学院“雨季”原创。