Jenkins+git+maven持续集成持续部署java项目(CI/CD)

news/2024/7/8 7:08:44

文章目录

    • 一. jenkins的作用
    • 二.安装
    • 三.maven安装
    • 四.git安装
    • 五. jenkins官方中文文档
    • 六. 集成
    • 七.配置自动化发布测试
    • 八.端口冲突解决
  • 九.构建触发器
    • 十.邮件通知


一. jenkins的作用

chi
在这里插入图片描述


二.安装

官网下载地址: https://www.jenkins.io/download/
本人采用下载war,上传服务器直接运行方式.
在这里插入图片描述

nohup java -jar Jenkins\ 2.346.3\ LTS.war  &

Jenkins初始化文件路径在下图中: 初始化密码也如图所示
在这里插入图片描述

初始化密码: 如上图
访问 ip:8080 (注意服务器提供商防火墙和系统防火墙放行)
一系列傻瓜安装后
在这里插入图片描述


三.maven安装

也可以在jenkins安装后,通过jenkins自动配置安装
我们需要借助jenkins自动拉取远程仓库或私服中的代码做持续部署.那么就要下载maven管理本地jar供以java代码运行.
在这里插入图片描述
需要提前配置好java环境变量
在这里插入图片描述

四.git安装

也可以在jenkins安装后,通过jenkins自动配置安装
Jenkins需要拉取测试远程仓库代码

yum install -y git 

在这里插入图片描述

五. jenkins官方中文文档

jenkins文档

六. 集成

利用jenkins 集成maven快速拉取部署项目

在这里插入图片描述
安装完毕后 配置全局环境(注意gittee需要安装插件并配置全局环境)

git凭证账户配置
在这里插入图片描述
全局maven配置
在这里插入图片描述

构建item项目
在这里插入图片描述
gitee配置

在这里插入图片描述

pom配置
在这里插入图片描述

七.配置自动化发布测试

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

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

回到item中配置
在这里插入图片描述
在这里插入图片描述

预期传输超时时间
在这里插入图片描述

八.端口冲突解决

在这里插入图片描述
添加上传前置动作.删除之前jar及其进程.
一般可以通过执行远程shell脚本. shell脚本编译好删除的内容及项目进程

#!bin/bash
# resetJar.sh
# 删除项目jar
rm -rf xxx.jar

if [ -z $1 ];
	then 
		echo "The args cannot be empty"
	else
		appname=$1
fi

# 执行脚本传入的参数是项目名称  ./resetJar.sh xxxx项目名
echo "arg:$1"


# 过滤出正在执行的jar程序的pid
pid=`ps -ef | grep $1 | grep 'java -jar xxx.jar' | awk '{printf $2}'`
echo $pid
# 如果pid为空,不执行杀进程
if [ -z $pid ];
	then
		echo "$appname not started"
	else
		kill -9 $pid
		echo "$appname stoping...."
fi

check=`ps -ef | grep -w $pid | grep java`
if [ -z $check ];
	then 
		echo "$appname pid:$pid is stop"
	else
		echo "$appname stop failed"
fi
	

九.构建触发器

目的为了解决代码变动自动构建.(不常用,总不能提交一次构建一次. )
在这里插入图片描述
若一些代码托管平台没有回调钩子.我们可以通过jenkins的定时任务回调代码托管平台
身份验证令牌,让远程仓库回调jenkins方式
安装插件

设置回调Jenkins令牌
在这里插入图片描述
Use the following URL to trigger build remotely: JENKINS_URL/job/vectorProject-server/build?token=TOKEN_NAME 或者 /buildWithParameters?token=TOKEN_NAME Optionally append &cause=Cause+Text to provide text that will be included in the recorded build cause.

在这里插入图片描述

在这里插入图片描述

十.邮件通知

告知相关人员构建时的情况.
jenkins全局配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://lihuaxi.xjx100.cn/news/76848.html

相关文章

Node.js——初识Node.js

系列文章目录 文章目录系列文章目录一、什么是 Node.js二、下载和安装 Node.js1、普通方式2、使用 nvm 安装三、Node.js 和 JavaScript 的区别1、ECMScript2、JavaScript3、node.js四、commonjs1、什么是 commonjs2、安装 lodash五、debugger六、server 开发和前端开发的区别一…

一个nginx部署多个应用及nginx总结

一、背景知识 1、Nginx是什么? &:Web服务器,静态文件保存、响应http请求。 同时可以提供代理、负载均衡的功能。 2、为什么使用? &:主要是轻量级和高性能,在一般行业不明显,但在互联…

使用docker快速搭建运维神器-spug

大家好,我是早九晚十二,目前是做运维相关的工作。写博客是为了积累,希望大家一起进步! 我的主页:早九晚十二 什么是spug? 面向中小型企业设计的轻量级无 Agent 的自动化运维平台,整合了主机管理…

C++泛型编程:可变参数模板

最近在看有关智能指针源码的时候make_unique,make_shared(用来创建管理一个新对象)模板都是这么定义的 template<typename T, typename... Ts> std::unique_ptr<T> make_unique(Ts&&... params) {return std::unique_ptr<T>(new T(std::forward<…

(附源码)计算机毕业设计ssm黑河市劳务人员管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

再学 PHP 基础 之 数组排序函数总结

文章目录排序函数汇总对比排序类型标志按【值】排序的函数array_multisort()asort()arsort()natcasesort()natsort()sort()rsort()shuffle()按【键】排序的函数ksort()krsort()uksort()自定义比较函数uasortuksort()usort()打乱数组&#xff08;随机排序&#xff09;shuffle()排…

FIT5217 Natural language processing学习经验贴

一、课程简介 这门课就是我们口中常说的nlp&#xff0c;课程包含三部分&#xff0c;第一部分是上午的lecture,这部分主要是老师上课讲课&#xff0c;kun老师的课讲不太行&#xff08;主要原因还是口语太工地&#xff09;&#xff0c;建议大家自己看课件。第二部分是Tutorial&a…

武汉市10月双软认定好处、认定条件及9月认定名单公示

武汉市10月双软认定开始&#xff0c;双软认定有哪些好处&#xff0c;以及需要满足的认定条件简单介绍在下文&#xff0c;9月双软认定的名单已经公示出来了&#xff0c;截取部分放在下文&#xff0c;大家可以参考一下&#xff0c;有需要申报或者了解政策可以直接找我沟通&#x…