Jenkins+Git+Maven持续集成

什么叫可持续集成

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

jenkins简介

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

环境搭建

系统环境
1
2
[root@VM_0_15_centos ~]# cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)
安装jdk
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
#进入/usr/local/src目录
cd /usr/local/src

#上传jdk文件并解压
tar zxvf jdk-8u201-linux-x64.tar.gz

#拷贝
cp -R jdk1.8.0_201/ /usr/local/jdk1.8

#配置环境变量
vim /etc/profile
#并在profile最后添加以下内容
JAVA_HOME=/usr/local/jdk1.8
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$JAVA_HOME/bin:$HOME/bin:$HOME/.local/bin:$PATH

#初始化环境变量
source /etc/profile

#查看java 版本
java -version

java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
安装git
1
2
3
4
yum  -y install git

#查看git 版本
git --version
安装maven
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#进入/usr/local/src目录
cd /usr/local/src

#上传jdk文件并解压
tar zxvf apache-maven-3.6.0-bin.tar.gz

#拷贝
cp -R apache-maven-3.6.0/ /usr/local/maven

#配置环境变量
vim /etc/profile
#并在profile最后添加以下内容
MAVEN_HOME=/usr/local/maven
PATH=${PATH}:${MAVEN_HOME}/bin

#初始化环境变量
source /etc/profile

#查看maven版本
mvn -v
安装tomcat
1
2
3
4
5
6
7
8
#进入/usr/local/src目录
cd /usr/local/src

#上传jdk文件并解压
tar zxvf apache-tomcat-8.5.39.tar.gz

#拷贝
cp -R apache-tomcat-8.5.39/ /usr/local/tomcat
添加tomcat为服务
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
27
28
29
30
31
32
33
34
#新建tomcat启动文件
vim /etc/init.d/tomcat

#!/bin/bash
# description: Tomcat8 Start Stop Restart
# processname: tomcat8
# chkconfig: 234 20 80

CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME=/usr/local/jdk1.8

case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;
*)
echo 'please use : tomcat {start | stop | restart}'
;;
esac
exit 0

#添加执行权限
chmod 755 /etc/init.d/tomcat

#添加为系统服务
chkconfig --add tomcat
#现在可以用service tomcat stop |start|restart 来管理tomcat了
安装jenkins

因机器内存不足的原因,这里jenkins 使用rpm包安装

1
2
3
4
#进入到src目录并上传rpm包
cd /usr/local/src
#开始安装
rpm -ih jenkins-2.168-1.1.noarch.rpm

因jenkins 默认使用8080端口,和tomcat占用的端口有冲突,故更改一下jenkins的默认端口

1
vim /etc/sysconfig/jenkins

img

1
vim /etc/init.d/jenkins

因rpm安装的jenkins 默认的jdk与安装的jdk路径不一样,会报错,启动不起来,故需要更改一下配置

img

jenkins初始化

浏览器打开你的地址 ip+端口,复制密码到输入框

jenkins密码

jenkins插件安装

这里选择安装推荐的默认插件

img

创建管理员账号

img

安装 maven 插件,找到 “系统管理“ - “安装插件” ,点击 “可选插件”,找到如下maven插件的版本(Maven Integration)

img

jenkins配置

img

img

配置完并保存

jenkins创建项目

img

img

构建完成后的shell脚本 达到自动部署的目地

img

编写shell脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#! /bin/bash
#设置UTF-8环境
set LANG=en_US.UTF-8
export JAVA_HOME=/usr/java/jdk1.8
TOMCAT_HOME="/usr/local/tomcat/"
TOMCAT_PORT=8080
PROJECT="trip"
BAK_DIR=/opt/war/bak/$PROJECT/`date +%Y%m%d`
WORK_DIR=/var/lib/jenkins/workspace/trip/target
service tomcat stop
sleep 5
mkdir -p "${BAK_DIR}"
mv "${TOMCAT_HOME}"/webapps/${PROJECT}.war "${BAK_DIR}"/"${PROJECT}"_`date +%Y%m%d%H%M%S`.war
rm -rf "${TOMCAT_HOME}"/ROOT
rm -rf "${TOMCAT_HOME}"/webapps/trip.war
mv "${WORK_DIR}"/trip-develop.war "${TOMCAT_HOME}"/webapps/trip.war
sleep 3
service tomcat start
echo "tomcat 启动成功"

给shell脚本赋予执行权限

1
chmod 777 /shell/ci.sh

注意事项:

shell脚本需要申明UTF-8,否则可能自动部署的项目会有乱码问题