使用Jenkins来构建GIT+Maven项目

使用Jenkins来构建GIT+Maven项目

前言

最近写了一篇博客是关于 使用 Jenkins来构建SVN+Maven项目 ,这里使用的的代码版本工具是 SVN ,但是事实上也有很多公司使用 GIT 来进行代码管理,那么我们如何使用 Jenkins 去自动发布 GIT Maven 项目呢?

正文

Jenkins

Jenkins 是一个开源的、可扩展的持续集成、交付、部署的基于 web 界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。

通常我们使用 Jenkins 主要实现以下功能:

  • 持续集成 指的是,频繁地(一天多次)将代码集成到主干。将软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误。
  • 持续交付 指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。
  • 持续部署 是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。

使用Jenkins来构建GIT+Maven项目

1.安装GIT

其实很多系统都会自带 git 工具,但是由于自带的 git 版本太低,无法满足 jenkins 对 git 工具版本的需求,所以建议升级 git 后,再进行 jenkins 的安装和配置。

第一步:安装所需的依赖

                     yum install curl  -  devel expat  -  devel gettext  -  devel openssl  -  devel zlib  -  devel
yum install gcc perl  -  ExtUtils  -  MakeMaker
yum install perl  -  ExtUtils  -  MakeMaker  package   

第二步:卸载原有GIT

                     yum remove  -  y git            
git  --  version  

在这里插入图片描述

第三步:安装新的GIT

                     cd  /  usr  /  local  /  src  /  wget https  :   /   /  www  .  kernel  .  org  /  pub  /  software  /  scm  /  git  /  git  -   2.15   .1   .  tar  .  xz
tar  -  vxf git  -   2.15   .1   .  tar  .  xz
cd git  -   2.15   .1  make prefix  =   /  usr  /  local  /  git all
make prefix  =   /  usr  /  local  /  git install
echo  "export PATH=$PATH:/usr/local/git/bin"   >>   /  etc  /  profile
source  /  etc  /  profile
git  --  version  

在这里插入图片描述

第四步:创建GIT链接

                     ln  -  s  /  usr  /  local  /  git  /  bin  /  git  -  upload  -  pack  /  usr  /  bin  /  git  -  upload  -  pack
ln  -  s  /  usr  /  local  /  git  /  bin  /  git  -  receive  -  pack  /  usr  /  bin  /  git  -  receive  -  pack  

2.配置git免密登陆

第一步:jenkins服务器生成公钥和密钥

  • /root/.ssh/id_rsa.pub :公钥,通常用于加密会话密钥。
  • /root/.ssh/id_rsa :密钥,用于验证数字签名。
  • /root/.ssh/authorized_keys :存放其他服务器的公钥。

执行下面的命令后将自动生成对应文件

                     ssh  -  keygen  -  t rsa  

第二步:将jenkins生成的公钥 id_rsa.pub 加入到git服务器 authorized_keys 文件中

                     chattr  -  ia authorized_keys

chmod  777  authorized_keys

vim authorized_keys  

在这里插入图片描述

第三步:获取密钥 id_rsa 的内容

                     cat  /  root  /   .  ssh  /  id_rsa  

在这里插入图片描述

3.安装与配置Jenkins

第一步:下载war安装包

官方下载地址: https://www.jenkins.io/download/

第二步:安装并配置Jenkins

                     nohup java  -  jar jenkins  .  war  &   

jenkins 默认的路径: IP:8080 ,进入管理界面后根据提示进行配置

  1. 根据提示从指定的位置获取初始的管理员密码
  2. 配置一个用户
  3. 安装系统推荐 Jenkins 插件

在这里插入图片描述

第三步:根据需要安装Jenkins插件

在 jenkins——Manage Jenkins——插件管理 中安装以下插件:

  • Publish Over SSH :用于通过 ssh 英语考试方式连接远程服务器,从而实现代码远程推送。 
    在这里插入图片描述

第四步:配置本地工具

在 jenkins——Manage Jenkins——Global Tool Configuration 中配置 Maven 、 JDK 和 GIT 

  • 使用 Maven 来构建项目
  • JDK 为项目提供了运行环境
  • GIT 为代码的版本控制仓库。

Maven 配置 
在这里插入图片描述
在这里插入图片描述
JDK 的配置 
在这里插入图片描述
GIT 的配置 
在这里插入图片描述

第五步:配置系统配置 
在 jenkins——Manage Jenkins——System Configuration 中配置远程服务器,这个服务器即为项目的运行容器。 
在这里插入图片描述

第六步:配置GIT密钥 
在 jenkins-凭据-系统-全局凭据 中配置 git 密钥

在这里插入图片描述

第七步:创建一个新任务,配置源码管理、构建和构建后操作

源码管理

在这里插入图片描述

构建

在这里插入图片描述

构建后操作

在这里插入图片描述

run.sh :脚本用于启动 spring-dubbo-producer.jar

                     APP_NAME  =  spring  -  dubbo  -  producer  .  jar
path  =  `pwd`

#使用说明  ,  用来提示输入参数  usage   (   )   {  echo  "Usage: sh 执行脚本.sh [start|stop|restart|status]"  exit  1   }  #检查程序是否在运行  is_exist   (   )   {  pid  =  `ps  -  ef  |  grep $APP_NAME  |  grep  -  v grep  |  awk  '{print $2}'  `
#如果不存在返回  1   ,  存在返回  0   if   [   -  z  "${pid}"   ]   ;  then  return   1   else   return   0  fi  }  #启动方法  start   (   )   {  is_exist  if   [  $  ?   -  eq  "0"   ]   ;  then
echo  "${APP_NAME} is already running. pid=${pid} ."   else  source  /  etc  /  profile
nohup java  -  jar $APP_NAME  >  $path  /  logs  .  txt  2   >   &   1   &  fi  }  #停止方法  stop   (   )   {  is_exist  if   [  $  ?   -  eq  "0"   ]   ;  then
kill  -   9  $pid  else  echo  "${APP_NAME} is not running"  fi  }  #输出运行状态  status   (   )   {  is_exist  if   [  $  ?   -  eq  "0"   ]   ;  then
echo  "${APP_NAME} is running. Pid is ${pid}"   else  echo  "${APP_NAME} is NOT running."  fi  }  #重启  restart   (   )   {  stop
start  }  #根据输入参数  ,  选择执行对应方法  ,  不输入则执行使用说明  case   "$1"  in  "start"   )  start  ;   ;   "stop"   )  stop  ;   ;   "status"   )  status  ;   ;   "restart"   )  restart  ;   ;   *   )  usage  ;   ;  esac  

第七步:构建项目,进行验证

构建项目

在这里插入图片描述

验证 
访问自己的项目的界面进行验证,我这里以 knife4j 为例: ip:8080/doc.html

在这里插入图片描述

在这里插入图片描述

原文地址:https://www.cnblogs.com/huilixieqi/p/13754756.html