zoukankan      html  css  js  c++  java
  • 使用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

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    Android Framework 学习(八):屏幕刷新机制
    Android Framework 学习(七):Service启动原理
    Android Framework 学习(六):UI线程概念
    Android Framework 学习(五):Activity 启动流程
    Android Handler 机制(六):如何检测性能卡顿
    Android Handler 机制(五):ThreadLocal的工作原理
    Android Framework 学习(四):Binder机制与代理模式
    Android Framework 学习(三):Android 跨进程通信机制
    Android Handler 机制(四):屏障消息(同步屏障)
    Android Handler 机制(三):Handler 机制与管道 Pipe 机制
  • 原文地址:https://www.cnblogs.com/huilixieqi/p/13754756.html
Copyright © 2011-2022 走看看