Jenkins

一、敏捷开发与持续集成

1)什么是敏捷开发

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

2) 什么是持续集成

因为开发部门同时维护多个版本,多个版本的发布,测试需要大量人力,所以要有一个专业的持续集成工具来管理持续重复的工作。
在这里插入图片描述

二、持续集成工具

1)Jenkins 和Hudson

  1. Jenkins是一个持续集成(CI)工具。它可以持续编译,运行你的代码;运行单元测试(UT)或集成测试;将运行结果发送至邮件,或展示成报告。
  2. Jenkins起源于Hudson。Hudson在商业软件的路上继续前行,而Jenkins则作为开源软件,从hudson分支出来。
    因此现在的jenkins和hudson非常类似,但是随着二者各自的发展,已经有了一些不同。

2)技术组合

Jenkins 可以整合 GitHub 或 Subversion Husband 也可以整合 GitHub 或 Subversion二者既然是同源的工具软件,操作和指导思想就是接近的

3)部署方式对比

JavaEE项目部署方式对比
①手动部署
在这里插入图片描述
自动化部署

在这里插入图片描述
“自动化”的具体体现:向版本库提交新的代码后,应用服务器上自动部署,用户或测试人员使用的马上就是最新的应用程序。

三、安装Jenkins

1)下载Jenkins.war文件

下载地址:

https://link.zhihu.com/?target=https%3A//mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.222.4/jenkins.war

2)开启Jenkins

①将下载的war文件传到Linux中的Tomcat目录中的webapps中,
在这里插入图片描述② 浏览器地址栏访问 IP地址:端口号/jenkins
在这里插入图片描述在这里插入图片描述输入管理员密码,密码文件所在位置见图所提示

在这里插入图片描述在Linux系统中打开该文件夹就可以查看密码

输入密码后出现以下提示
可以点击安装推荐插件,
也可以自定义安装;缺少的插件以后也可以安装

在这里插入图片描述插件下载中
在这里插入图片描述插件下载完成后,需要创建一个管理员用户
如果插件安装失败,可以升级站点
在这里插入图片描述http://mirror.xmission.com/jenkins/updates/current/update-center.json

在这里插入图片描述

在这里插入图片描述

四、使用Jenkins部署项目

1)准备Linux的环境搭建

①安装jdk,配置环境变量
②安装Tomcat,配置环境变量
③安装git
首先安装依赖环境

yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum install -y gcc perl-ExtUtils-MakeMaker

删除已有的git

yum -y remove git

将git的tar文件传到Linux中,并解压

tar -zxvf git-2.9.3.tar.gz

编译

# 进入解压的文件目录
cd git-2.9.3
# 编译,指定前缀
make prefix=/usr/java/git all
# 安装
make prefix=/usr/java/git install

配置环境变量

export GIT_HOME=/usr/java/git
export PATH=$GIT_HOME/bin:$PATH

使配置文件生效

source  /etc/profile

查看git版本

git --version

④安装maven,配置环境变量

2)使用Jenkins

① 安全管理器

在这里插入图片描述在这里插入图片描述在这里插入图片描述② 全局配置

安装jdk

在这里插入图片描述配置maven的环境
在这里插入图片描述配置maven的settings.xml

在这里插入图片描述配置git
首先在Linux中查看git的路径

whereis git

将路径填入path中
在这里插入图片描述③创建任务
若刚一开始没有下载maven插件的,需要先下载maven插件

图片: https://uploader.shimo.im/f/B1OCEKbv9BTG7th2.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjQ1MzY2NjMsImciOiJ3STY4UVNmYUdYd3M1dWl3IiwiaWF0IjoxNjI0NTM2MzYzLCJ1c2VySWQiOjYyNDIzNTQxfQ.5SmvAdlXnN3eOZh6l9PWzawzLFBZ9fIx46Apw4JClos创建一个maven项目

在这里插入图片描述构建项目的git配置
首先在Linux中执行以下命令,目的是为了让本地机器ssh登录远程机器上的Gitee账户无需输入密码

# 输入自己gitee绑定的邮箱
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

在这里插入图片描述

在这里插入图片描述

clean package -U -Dmaven.test.skip=true

在这里插入图片描述
在这里插入图片描述

框内填入下列内容

BUILD_ID=DONTKILLME
echo "部署的目录和项目名称"
sh /usr/java/test/build.sh
echo "success"

先创建文件,稍后应用启动

创建对应的build.sh
文件存放在Linux系统的/usr/java/test文件下

#! /bin/bash
echo "部署的目录和项目名称"
DIR="/project"
projectName="demo"
echo "待部署的应用服务器"
server_ips="192.168.159.34" 
#所有的参数列表
for server_ip in ${server_ips[@]}
do
echo "进行备份操作"
mkdir -p $DIR/backup/${projectName}
if [ -f "$DIR/${projectName}/${projectName}.jar" ];then
  mv $DIR/${projectName}/${projectName}.jar $DIR/backup/${projectName}/${projectName}-`date "+%Y%m%d_%H%M%S"`.jar
fi
echo "拷贝jar包到目标服务器的目录下"
cp ${WORKSPACE}/target/*.jar /usr/java/test/demo.jar
echo "连接进行发布操作"
#mv /usr/java/test/demo.jar $DIR/backup/${projectName}/${projectName}.jar
echo "开始关闭jar"
sh /usr/java/test/shstopspringboot.sh
sleep 5s
echo "启动jar"
sh /usr/java/test/shspringboot.sh
done

创建shstopspringboot.sh文件
文件存放在Linux系统的/usr/java/test文件下

#! /bin/bash
nohup java -jar /usr/java/test/demo.jar > release_out.log 2>&1 &start_ok=false

创建shspringboot.sh文件
文件存放在Linux系统的/usr/java/test文件下

#! /bin/bash
l=`ps -ef|grep demo.jar|grep -v grep|awk '{print $2}'`
for i in $l
do
 kill -9 $i
done

然后回到Jenkins应用、启动
项目构建成功
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值