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

文章目录

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


一. jenkins的作用

Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第1张图片
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第2张图片


二.安装

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

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

Jenkins初始化文件路径在下图中: 初始化密码也如图所示
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第3张图片

初始化密码: 如上图
访问 ip:8080 (注意服务器提供商防火墙和系统防火墙放行)
一系列傻瓜安装后
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第4张图片


三.maven安装

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

四.git安装

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

yum install -y git 

Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第6张图片

五. jenkins官方中文文档

jenkins文档

六. 集成

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

Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第7张图片
安装完毕后 配置全局环境(注意gittee需要安装插件并配置全局环境)

git凭证账户配置
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第8张图片
全局maven配置
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第9张图片

构建item项目
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第10张图片
gitee配置

Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第11张图片

pom配置
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第12张图片

七.配置自动化发布测试

在这里插入图片描述
在这里插入图片描述
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第13张图片

Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第14张图片
现在大多数代码托管平台不支持http 账号密码拉取。建议采用ssh拉取
需要现在jenkins的服务器上安装git,然后配置jenikins全局配置ssh密钥,在github上配置公钥
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第15张图片

回到item中配置
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第16张图片
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第17张图片

预期传输超时时间
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第18张图片

八.端口冲突解决

Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第19张图片
添加上传前置动作.删除之前jar及其进程.
使用了public over ssh插件需要在执行命令之前

#刷新配置
source /etc/profile
# 防止jenkins杀死未执行完毕的sh脚本
BUILD_ID=dontKillMe
#执行脚本,删除jar包,杀死进程
sh /root/jarpackage/vector-start.sh vector-admin

一般可以通过执行远程shell脚本. shell脚本编译好删除的内容及项目进程

#!bin/bash

# 删除项目jar
rm -rf /root/jarpackage/vector-admin.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' | awk '{printf $2}'`
echo $pid
# 如果pid为空,不执行杀进程
if [ -z $pid ];
        then
                echo "$appname not started!"
        else
                kill -9 $pid
                echo "$appname stop success!"
fi

九.构建触发器

目的为了解决代码变动自动构建.(不常用,总不能提交一次构建一次. )
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第20张图片
若一些代码托管平台没有回调钩子.我们可以通过jenkins的定时任务回调代码托管平台
身份验证令牌,让远程仓库回调jenkins方式
安装插件

设置回调Jenkins令牌
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第21张图片
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+git+maven持续集成持续部署java项目(CI/CD)_第22张图片

Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第23张图片

十.邮件通知

告知相关人员构建时的情况.
jenkins全局配置
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第24张图片
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第25张图片
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第26张图片
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_第27张图片

你可能感兴趣的:(Linux学习,jenkins,java,git)