什么是敏捷开发
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开
发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、
可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行
的小项目,并分别完成,在此过程中软件一直处于可使用状态。
什么是持续集成(CI)
因为开发部门同时维护多个版本,多个版本的发布,测试需要大量人力,所以要有一个专业
的持续集成工具来管理持续重复的工作。

一. 持续集成工具**(CI)**
1.1 Jenkins 和 Hudson
- Jenkins 是一个持续集成(CI)工具。它可以持续编译,运行你的代码;运行单元测试(UT)
或集成测试;将运行结果发送至邮件,或展示成报告。
- Jenkins 起源于 Hudson。Hudson 在商业软件的路上继续前行,而 Jenkins 则作为开源软
件,从 hudson 分支出来。 因此现在的 jenkins 和 hudson 非常类似,但是随着二者各自的发
展,已经有了一些不同。
1.2技术组合
Jenkins 可以整合 GitHub 或 Subversion Husband 也可以整合 GitHub 或 Subversion 二者
既然是同源的工具软件,操作和指导思想就是接近的
1.3部署方式对比
JavaEE项目部署方式对比
手动部署
git ->checkout-> war -> 部署

自动化部署
"自动化"的具体体现:向版本库提交新的代码后,应用服务器上自动部署,用户或测试人员
使用的马上就是最新的应用程序。

搭建上述持续集成环境可以把整个构建、部署过程自动化,很大程度上减轻工作量。 对于程
序员的日常开发来说不会造成任何额外负担------自己把代码提交上去之后,服务器上运行的马
上就是最新版本------一切都发生在无形中。
下面我们讲带领大家一步一步搭建整套持续集成环境,这个操作过程只需要细心认 真即
可,没有任何难度。但是需要优秀的你具备以下前置知识:
Linux基本操作命令和VIM编辑器使用
Maven的项目构建管理
GitHub或SVN使用
二. 环境准备
jdk 17
tomcat
Jenkins.war
2.1安装jdk
2.1.1 通过yum安装
自行查询安装即可
2.1.2 tar 包安装
这里我们使用的jdk安装方式是通过准备好的tar包进行安装(可私我)

将准备好的tar包上传到我们虚拟机准备好的位置

解压tar包

配置环境变量
打开配置文件
vim /etc/profile
\
修改配置文件
export JAVA_HOME=/opt/jdk/jdk-17.0.12
export CLASSPATH=.:JAVA_HOME/lib:CLASSPATH
export PATH=JAVA_HOME/bin:PATH

生效环境
source /etc/profile
查看版本
java -version
2.2 安装tomcat
2.2.1 安装tomcat
将tomcat jar包上传 解压jar包即可


2.2.2 启动tomcat
sh apache-tomcat-10.1.30/bin/startup.sh

2.2.3 访问测试

2.3 上传文件
使用git将想要上传的项目上传到gitee里面 具体的如何下载配置git 和 gitee注册 请自行准备
这里我是用的是目前最新版本的git


三. 安装jenkins
3.1 下载jenkins.war

将下载好的war包放到tomcat安装目录的 wabapps里面

访问页面
Tomcat路径下的/jenkis
自己的虚拟机ip地址
192.168.5.69:8080/jenkins

之后在虚拟机中访问页面中给到的配置文件位置复制密码进行登录

登录之后 按照下方图片进行使用





3.2 安装git
3.2.1 命令安装
命令
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
3.2.2 tar包安装

解压tar包
tar -zxvf git-2.19.0.tar.gz

进入git目录并安装
mkke prefix=/usr/java/git all

如果报错

执行命令
安装 Expat 库 成功则不需要
yum install expat-devel

继续执行命令
make prefix=/usr/java/git install

配置环境变量
#打开配置文件
vim /etc/profile
#添加下方内容
export GIT_HOME=/usr/java/git
export PATH=GIT_HOME/bin:PATH

到此git就安装成功了
3.3 安装maven
3.3.1 上传 并解压 tar包

配置环境变量
#打开配置文件
vim /etc/profile
#添加下方内容
export MAVEN_HOME=/opt/jdk/apache-maven-3.8.8
export PATH=MAVEN_HOME/bin:PATH
#配置完之后记得重启环境服务
source /etc/profile

修改配置文件settings.xm
找到配置文件
配置阿里镜像
可以使用自己电脑安装过的maven中的阿里镜像
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/\</url>
<mirrorOf>central</mirrorOf>
</mirror>

找到虚拟机的配置文件 将下方这个位置的镜像改为虚拟机的
下载插件w
mvn help:system


四. 使用Jenkins
4.1 允许用户注册

4.2 配置全局工具
配置 git maven
1. 配置 
2. 配置jdk
往下扒拉
3. 配置maven
继续扒拉


4. 安装配置 git
安装git的插件


查看 git 的可执行程序
whereis git

配置git
还进入上面配置的地方 这个时候就下方就可以添加git的配置了6
5. 安装maven插件
4.3 创建任务
注意 这里的配置需要准备好gett上传路径








之后再虚拟机里创建创建目录
#创建目录
mkdir /usr/java/test/
#进入目录之后创建sh文件
touch
打卡配置文件 将下方配置信息复制到里面 修改为自己的ip地址即可
#! /bin/bash echo "部署的目录和项目名称" DIR="/usr/java/project" projectName="demo" echo "待部署的应用服务器" server_ips="192.168.5.69" #所有的参数列表 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 $DIR/${projectName}/${projectName}.jar echo "目标服务器:$DIR/${projectName}/${projectName}.jar" echo "连接进行发布操作" #mv /usr/java/test/demo.jar $DIR/backup/${projectName}/${projectName}.jar echo "开始关闭jar" l=`ps -ef|grep demo.jar|grep -v grep|awk '{print $2}'` for i in $l do kill -9 $i done sleep 5s echo "启动jar" nohup java -jar $DIR/${projectName}/${projectName}.jar --server.port=9999 > release_out.log 2>&1 &start_ok=false done