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

一. 持续集成工具(CI)
1.1 Jenkins 和 Hudson
1) Jenkins 是一个持续集成(CI)工具。它可以持续编译,运行你的代码;运行单元测试(UT)
或集成测试;将运行结果发送至邮件,或展示成报告。
2) 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" ];thenmv $DIR/${projectName}/${projectName}.jar $DIR/backup/${projectName}/${projectName}-`date "+%Y%m%d_%H%M%S"`.jarfi
echo "拷贝jar包到目标服务器的目录下"
cp ${WORKSPACE}/target/*.jar $DIR/${projectName}/${projectName}.jarecho "目标服务器:$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
dokill -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
相关文章:
Jenkins---01
什么是敏捷开发 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开 发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、 可集成和可运行使用的特征。换言之&…...
第十五届蓝桥杯C++B组省赛
文章目录 1.握手问题解题思路1(组合数学)解题思路2(暴力枚举) 2.小球反弹做题思路 3.好数算法思路(暴力解法)---不会超时 4.R格式算法思路 5.宝石组合算法思路---唯一分解定理 6.数字接龙算法思路----DFS 7…...
线程 vs 虚拟线程:深入理解及区别
Java 提供了两种线程机制:普通线程(平台线程)和 虚拟线程。普通线程是 Java 中经典的并发处理方式,而虚拟线程是随着 Java 21 引入的新特性,旨在提升并发性能和开发体验。本文将详细探讨它们的区别,并帮助你…...
【WEB应用安全测试指南–蓝队安全测试2】--超详细-可直接进行实战!!!亲测-可进行安全及渗透测试
安全基础理论入门知识参考上一篇《WEB应用安全测试指南蓝队安全测试1》 WEB应用安全测试指南2 一、文件 I/O 类1.1、任意文件上传1.2、任意文件下载1.3、文件包含 二、接口安全类2.1、短信炸弹2.2、邮件炸弹2.3、短信内容可控2.4、邮件内容可控 三、逻辑流程类3.1、越权3.2、未…...
使用HTML、CSS和JavaScript创建滚动弹幕效果
使用HTML、CSS和JavaScript创建滚动弹幕效果 在现代网页设计中,滚动文本是一种常见的动态效果,可以吸引用户的注意力并增强交互体验。在这篇博客文章中,我们将详细介绍如何使用HTML、CSS和JavaScript实现滚动文本效果。 效果 步骤1…...
【C语言】--数组
😊个人主页: 起名字真南 😋个人专栏:【数据结构初阶】 【C语言】 【C】 目录 1 数组的概念2 一维数组的创建和初始化2.2 数组的初始化2.3 数组类型 3 一维数组的使用3.1 数组下标3.2 数组的输入 4 一维数组在内存中的存储5 sizeof计算数组中的元素6 二维…...
面向B2B市场的Spring Boot医疗病历系统开发
第1章绪论 计算机已经从科研院所,大中型企业,走进了平常百姓家,Internet遍及世界各地,在网上能够用计算机进行文字草拟、修改、打印清样、文件登陆、检索、综合统计、分类、数据库管理等,用科学的方法将无序的信息进行…...
闭着眼学机器学习——支持向量机分类
引言: 在正文开始之前,首先给大家介绍一个不错的人工智能学习教程:https://www.captainbed.cn/bbs。其中包含了机器学习、深度学习、强化学习等系列教程,感兴趣的读者可以自行查阅。 1. 算法介绍 支持向量机(Support Vector Mach…...
今日指数项目day8实战权限管理器(上)
3.权限管理器 3.1 权限列表展示功能 1)原型效果 2)接口说明 功能描述: 查询所有权限集合 服务路径: /api/permissions 服务方法:Get 请求参数:无响应数据格式: {"code": 1,"data":…...
《机器学习与数据挖掘综合实践》实训课程教学解决方案
一、引言 随着信息技术的飞速发展,人工智能已成为推动社会进步的重要力量。作为人工智能的核心技术之一,机器学习与数据挖掘在各行各业的应用日益广泛。本方案旨在通过系统的理论教学、丰富的实践案例和先进的实训平台,帮助学生掌握机器学习…...
linux中软连接和硬链接的区别
定义与概念 硬链接(Hard Link):硬链接是文件系统中的一个概念,它直接指向文件系统中的物理数据块。可以把硬链接看作是原始文件的一个别名,它们共享相同的inode(索引节点)编号。在Linux文件系统…...
#Swift 对比 Static 在Swift 和 OC中的用法
在 Objective-C 和 Swift 中,static 关键字都用于定义类型级别的成员,但它们的用法和行为在两个语言中有所不同。让我们来详细对比一下 Objective-C 和 Swift 中 static 的使用方式和特性。 1. Objective-C 中的 static 在 Objective-C 中,…...
yakit使用教程(三,端口探测和指纹扫描)
本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 前言: 前文链接:yakit下载安装教程。 1.端口扫描的作用。 对目标端口进行扫描可以知道目标服务器开启了什么服务,以便于针对其所存在的服务展开…...
一维数组的引用
#define SIZE 5 int main(void) { int i 0; int arr[SIZE] { 86,85,85,896,45 };//同理五个数据只是偶然,可能会更多 //输入 for (i 0;i < SIZE;i) { printf("请输入你的第%d个值:",i1); scanf_s(&…...
Vue3 watch 监视属性
作用:监视数据的变化(和Vue2中的watch作用一致)特点:Vue3中的watch只能监视以下四种数据: ref定义的数据。reactive定义的数据。函数返回一个值(getter函数)。一个包含上述内容的数组。 我们在V…...
大数据-158 Apache Kylin 安装配置详解 集群模式启动
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
PHP商会招商项目系统一站式服务助力企业腾飞
商会招商项目系统——一站式服务,助力企业腾飞 🚀💼 🚀 开篇:企业成长的加速器,商会招商项目系统来袭 在竞争激烈的市场环境中,企业如何快速找到适合自己的发展路径,实现腾飞&…...
pnpm 和 npm
pnpm 和 npm 是 JavaScript 生态系统中常用的包管理工具,它们各自有不同的特性和优缺点。下面是这两者的详细比较: 1. 基本概念 npm (Node Package Manager): 是 Node.js 的默认包管理器,提供安装、更新、卸载 JavaScript 包的功…...
笔试算法总结
文章目录 题目1题目2题目3题目4 题目1 使用 StringBuilder 模拟栈的行为,通过判断相邻2个字符是否相同,如果相同就进行删除 public class Main {public static String fun(String s) {if (s null || s.length() < 1) return s;StringBuilder builde…...
mybatisPlus对于pgSQL中UUID和UUID[]类型的交互
在PGSQL中,有的类型是UUID和UUID[]这种类型,在mybatis和这些类型交互的时候需要手动设置类型处理器才可以,这里记录一下类型处理器的设置 /*** UUID类型处理器*/ public class UUIDTypeHandler extends BaseTypeHandler<UUID> {/*** 获…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
Spring Security 认证流程——补充
一、认证流程概述 Spring Security 的认证流程基于 过滤器链(Filter Chain),核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤: 用户提交登录请求拦…...
C++_哈希表
本篇文章是对C学习的哈希表部分的学习分享 相信一定会对你有所帮助~ 那咱们废话不多说,直接开始吧! 一、基础概念 1. 哈希核心思想: 哈希函数的作用:通过此函数建立一个Key与存储位置之间的映射关系。理想目标:实现…...
边缘计算网关提升水产养殖尾水处理的远程运维效率
一、项目背景 随着水产养殖行业的快速发展,养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下,而且难以实现精准监控和管理。为了提升尾水处理的效果和效率,同时降低人力成本,某大型水产养殖企业决定…...
SQL注入篇-sqlmap的配置和使用
在之前的皮卡丘靶场第五期SQL注入的内容中我们谈到了sqlmap,但是由于很多朋友看不了解命令行格式,所以是纯手动获取数据库信息的 接下来我们就用sqlmap来进行皮卡丘靶场的sql注入学习,链接:https://wwhc.lanzoue.com/ifJY32ybh6vc…...







