Jenkins---01

什么是敏捷开发

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开

发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、

可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行

的小项目,并分别完成,在此过程中软件一直处于可使用状态。

什么是持续集成(CI)

因为开发部门同时维护多个版本,多个版本的发布,测试需要大量人力,所以要有一个专业

的持续集成工具来管理持续重复的工作。

一. 持续集成工具**(CI)**

1.1 Jenkins 和 Hudson

  1. Jenkins 是一个持续集成(CI)工具。它可以持续编译,运行你的代码;运行单元测试(UT)

或集成测试;将运行结果发送至邮件,或展示成报告。

  1. 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使用

二. 环境准备

  1. jdk 17

  2. tomcat

  3. 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

Jenkins 的安装和设置https://www.jenkins.io/zh/download/

将下载好的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
相关推荐
朝九晚五ฺ6 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
Kkooe7 小时前
GitLab|数据迁移
运维·服务器·git
久醉不在酒7 小时前
MySQL数据库运维及集群搭建
运维·数据库·mysql
虚拟网络工程师9 小时前
【网络系统管理】Centos7——配置主从mariadb服务器案例(下半部分)
运维·服务器·网络·数据库·mariadb
BLEACH-heiqiyihu9 小时前
RedHat7—Linux中kickstart自动安装脚本制作
linux·运维·服务器
MXsoft61810 小时前
华为服务器(iBMC)硬件监控指标解读
大数据·运维·数据库
19004310 小时前
linux6:常见命令介绍
linux·运维·服务器
Camellia-Echo10 小时前
【Linux从青铜到王者】Linux进程间通信(一)——待完善
linux·运维·服务器
嚯——哈哈11 小时前
轻量云服务器:入门级云计算的最佳选择
运维·服务器·云计算
我是唐青枫11 小时前
Linux dnf 包管理工具使用教程
linux·运维·服务器