• Jenkins+Maven+SVN+Nexus自动化部署代码实例


    本文接着上篇安装jenkins,安装相关插件,使用我们公司持续集成的测试环境实例进行演示

    ========= 完美的分割线 ==========

    1.安装jenkins的maven插件

    如果要使用jenkins自带的maven插件进行打包,需要安装maven插件,较常用,不过我这边使用的是服务器上已经安装好的maven工具,所以该插件可以不安装

    以下是常用的jenkins插件安装方法:以maven插件为例

    进入jenkins的“系统管理”中的“插件管理”,选择可选插件的选项卡(我的已经安装好),查找关键字“Maven Integration”,之后勾选进行安装,安装完成,重启应用即可

    # 操作步骤如下图:

    2.创建一个新的工程(project)

    2.1.新建任务

    1)选择项任务称和类型

    安装完maven插件,重启进入首页,点击新建任务,可以看到选项菜单多出一个“构建一个maven项目”,如下图:

    键入一个项目名称(testweb),选中“构建一个maven项目”,点击确认即可

    如果有已经存在的项目可以将配置文件进行复制,可以自动补全,如下图:

    复制项目可以大大节省我们构建一个完整项目集群的时间

    2.2.详细配置任务细节

    有多个选项卡供选择

    1)General选项卡

    # 设置一般功能,注释等

    # 丢弃旧的构建,防止保留过多的代码包影响服务器性能,可以按照天数和代码包个数进行保留

    2)源码管理选项卡

    # 设置代码的拉取设置

    这里选择svn代码库,需要填入svn的链接,增加个认证用户(建议对jenkins专门设置),

    然后就是检出的选项,默认是尽可能使用update更新,为了防止代码更新冲突,我这里设置总是全新检出(会多耗费一定时间和性能)

    3.构建选项卡

    # 设置构建工程时需要执行的命令,这些命令就是在服务器中正常执行的

    构建时直接选择执行shell命令即可,然后将一般发布项目代码的脚本写上来就可以了,然后单击保存

    附上一个我的代码发布脚本供参考:

    #!/bin/sh
    ################################################
    # This script is made by zhaoshuai on 20170509.#
    # for update coinnice web             #
    # if you have any question please contact QQ  #
    ################################################
    ############# BEGIN ##############
    TIME=$(date +%Y%m%d-%H%M)
    TOMCAT_DIR=/usr/local/tomcat1
    WEB_ROOT=/www.coinweb.com
    CODEDIR=tempdir
    . /etc/init.d/functions
    
    # Determine whether the package.
    if [ ! -f "$1" -o -z "$1" ] 
       then 
          sleep 1
          action "Code deployment ......" /bin/false
          echo "Please confirm the <*.war>" 
          exit 1
       else
          echo "The <$1> will be deployed"
    fi
    if [ ! -d "$TOMCAT_DIR$WEB_ROOT" ] 
       then 
          sleep 1
          action "The specified directory <$WEB_ROOT> does not exist" /bin/false
          echo "Please confirm the <$WEB_ROOT>" 
          exit 1
       else
          action "The specified directory <$WEB_ROOT> exist" /bin/true
    fi
    
    # Stop the web server.
    echo " "
    echo "====== Start stop web server ======"
    ps -ef | grep "$TOMCAT_DIR" | grep -v grep | awk '{print $2}' | sed -e "s/^/kill -9 /g" | sh -
    sleep 1
    action "Stop the web server ......" /bin/true
    
    # Backup the web server
    echo " "
    sleep 1
    echo "====== Start backup web server ======"
    /bin/mv $TOMCAT_DIR$WEB_ROOT ./$TIME
    sleep 1
    action "Backup old web code ......" /bin/true
    
    # Update the web server
    echo " "
    sleep 1
    echo "====== Start deploying new code ======"
    if [ -d ./$CODEDIR ]
       then
          echo "The "$CODEDIR" is exist"
       else
          mkdir -p ./$CODEDIR
          echo "The "$CODEDIR" is created"
    fi
    /bin/cp ./$1 ./$CODEDIR
    cd ./$CODEDIR
    jar xf $1 && /bin/rm -f $1
    cd ../
    /bin/mv  $CODEDIR $TOMCAT_DIR$WEB_ROOT
    
    /bin/mv $TOMCAT_DIR/logs/catalina.out /tmp/tomcat1-$TIME.log
    /bin/rm -rf $TOMCAT_DIR/logs/*
    /bin/rm -rf $TOMCAT_DIR/work/*
    
    # www.coinweb.com
    #/bin/cp -rf ./$TIME/WEB-INF/classes/*.properties  $TOMCAT_DIR$WEB_ROOT/WEB-INF/classes/
    
    #echo "====== Code has been deployed ======"
    sleep 1
    action "The new code deployment ......" /bin/true
    
    # Start web server
    echo " "
    sleep 1
    echo "====== Start the web server ======"
    $TOMCAT_DIR/bin/catalina.sh start
    ps -ef | grep "$TOMCAT_DIR" | grep -v grep
    sleep 1
    action "Start the web server ......" /bin/true
    
    # Open web logs
    #echo " "
    #sleep 1
    #echo "====== Open web server logs ======"
    #tail -f $TOMCAT_DIR/logs/catalina.out
    ################## END ###################

    2.3.构建一个项目

    配置完工程即可发布项目代码,这里叫“构建工程”

    单击“立即构建”,会在左下角“构建历史”标签中产生一个项目构建的进度条,点击图中的闪烁的圆点可以直接查看构建日志

    可以在最开始看到正在构建这个项目的用户,构建时的文件缓存目录,时间,svn库链接等

    下面可以看到,当前svn版本库的代码版本,可以判断是否更新到你提交的文件代码等

    开头为加号的就是我们之前写的shell命令

    在往下的日志

    如果所有的命令均正常执行完毕在最下面可以看到“Finished: SUCCESS”字样,如下图

    否则就是“Finished: FAILURE”同时可以看到是在哪一步处的错方便排错

    至此,一个单纯的jenkins构建项目的示例就完成了

    3.注意信息:

    1)创建的工程,配置文件在服务器的jenkins数据目录下的job目录中,以工程名testweb命名的目录中“/data/jenkins/jobs/testweb/”

    2)构建项目时的缓存目录在数据目录下的workspace中,“/data/jenkins/workspace”

    3)一般来说jenkins代码发布平台和tomcat站点运行的位置不在同一台服务器需要考虑文件传输时的免密认证,自己做测试可以将tomcat与jenkins放置于同一台服务器

    4)本文演示的是在整个持续集成平台中运维工程师可以操作的部分,以下操作需要与开发合作进行

    构建Nexus私有库导入某些jar文件,本文没有展示

    maven构建项目时需要用到的pom.xml配置文件

    5)项目发布完成后可以在浏览器里找到打好的war包,存储位置在“工作空间”的“target”目录里

    同时可以再linux服务器的对应位置找到该代码包

    ======= 完毕,呵呵呵呵 ======== 

  • 相关阅读:
    Canvas入门
    20220424 08:00:01
    20220417 08:00:03
    20220422 08:00:01
    LoadRunner性能测试
    中国软件杯打卡——图片放大与缩小功能
    中国软件杯打卡
    sqlserver Navicat可连接,但使用java代码连接就报错(通过端口 1433 连接到主机 127.0.0.1 的 TCP/IP 连接失败)
    java学习数组Arrays工具类
    java学习静态static关键字
  • 原文地址:https://www.cnblogs.com/tssc/p/9689893.html
Copyright © 2020-2023  润新知