zoukankan      html  css  js  c++  java
  • Jenkins与Git持续集成&&Linux上远程部署Java项目

    一、环境搭建

    1、安装所需软件

    • Jdk
    • Maven
    • Jenkins
    • Tomcat
    • Xshell
    • git

    以上软件去官网下载,比较简单,不一一描述了

    2、安装所需的jenkins插件

    • Git plugin
    • GitHub plugin      git插件,download代码至本地
    • Mailer Plugin       邮件插件
    • Publish Over SSH     远程访问Linux服务器插件

    打开jenkins—》系统管理—》管理插件—》可选插件,输入要下载的插件,勾选直接安装,安装完成页面勾选重启,插件安装成功

     

    3、配置jdkmaven omcat环境变量

          路径:我的电脑---》属性—》高级系统设置—》环境变量

    • Jdk环境变量配置

    JAVA_HOME: C:Program FilesJavajdk1.8.0

    CLASSPATH: .; %JAVA_HOME%libdt.jar; %JAVA_HOME%lib ools.jar

    PATH: %JAVA_HOME%in; %JAVA_HOME%jrein

    • Maven环境变量配置

    M2_HOME: C:maven

    MAVEN_OPTS: -Xms256m -Xmx512m

    PATH: %M2_HOME%in

    • Tomcat环境变量配置

    CATALINA_BASE:c: omcat

    CATALINA_HOME: c: omcat

    CLASSPATH : %CATALINA_HOME%commonlibservlet.jar

    PATH: %CATALINA_HOME%in; %CATALINA_HOME%lib

    •  Linux环境变量配置

    修改etc/profile文件,文件末尾添加

    # jdk1.8 settings

    JAVA_HOME=/usr/java/jdk1.8.0_51

    JRE_HOME=$JAVA_HOME/jre

    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

    CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

    export JAVA_HOME JRE_HOME PATH CLASSPATH

    #tomcat settings

    CATALINA_HOME=/usr/local/tomcat

    CATALINA_BASE=/usr/local/tomcat

    export CATALINA_HOME CATALINA_BASE

    保存,执行source /etc/profile生效

    然后在tomcat/bin/目录下创建setenv.sh文件,文件内容如下

    #!/bin/bash

    CATALINA_HOME=/usr/local/tomcat

    CATALINA_PID=$CATALINA_HOME/bin/CATALINA_PID

    ID=`ps -ef | grep java | grep tomcat|awk '{print $2}'`

        echo $ID 

        for id in $ID 

        do 

         echo $id > $CATALINA_PID      

        done  

           

    JAVA_OPTS=`-Xms512m -Xmx1024m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m`

    JAVA_HOME=/usr/java/jdk1.8.0_51 

    JRE_HOME=/usr/java/jdk1.8.0_51/jre

    在tomcat/bin目录下创建CATALINA_PID文件

    把setenv.sh文件内容copy至/bin/catalina.sh文件

    Linux环境变量配置是为解决后面执行shell脚本时重启tomcat报错

    4、修改maven配置文件,修改版本库地址和jdk版本

    修改配置文件:maven—>conf-->settings.xml

    jdk默认是被注释的,放开后,修改为当前安装的jdk版本,否则构建时会报错

     

    创建maven版本库地址,然后在settings.xml中添加版本库地址

    添加<localRepository>D:/repository</localRepository>一行代码,如图

     

    5、配置远程tomcat站点,创建站点文件夹(存放war包)

       修改tomcat下server.xml文件

    二、构建java项目

    1、设置jenkins全局变量

       打开jenkins,进入系统管理,

    l  MavenJDKgit安装目录,如图

     

    l  配置邮件通知,此处的邮件地址要跟管理员一样,勾选发送邮件测试配置,输入收件人地址,若配置成功,会收到测试邮件

     

    l  选择要发布的具体位置,输入以下内容后,点击test configuration,验证是否连接成功

    SSH Server Name: 远程连接名字,随便起

    HostName:远程主机ip

    Usename:远程登录名

    Remote Directory:发布远程目录

    Passphrase/Password: 远程登录密码

     

    2、创建maven项目,修改配置项

    l  新建job,选择构建一个maven项目

     

    l  配置job

    • 源码管理:输入git地址

     

    • 构建触发器:勾选Build whenever a SNAPSHOT dependency is built,建立快照依赖关系

     

    • 构建文件:构建pom文件(pom相对路径,Jenkins识别路径至workspace)+构建命令clean install -P test/-P pro

     

    • 远程发布信息:

     

    • 设置发送邮件通知,构建不稳定时和构建失败时发送邮件通知

                  

    三、编写脚本并发布

    1、编写shell脚本,脚本上传至远程机器

    #!/bin/bash
    export LANG="en_US.UTF-8"
    PROJECT=admin
    BACK_DIR=/usr/local/autodeploy/back/$PROJECT
    TEMP_DIR=/usr/local/autodeploy/temp/$PROJECT
    TOMCAT_HOME=/usr/local/tomcat
    WEBAPPS=webapps_jfadmin
    if [ -f $TEMP_DIR/$PROJECT.war ]; then
        echo "=======If temp exists war,finding tomcat PID======"
         #shutdown tomcat
         #echo "===================killing tomcat================="
         #$TOMCAT_HOME/bin/shutdown.sh
         #ID=`ps -ef | grep java | grep tomcat|awk '{print $2}'`
        #echo $ID  
        #for id in $ID  
        #do  
         #kill -9 $id  
          #echo "killed$id"       
        #done  
        #echo "===================killed tomcat==================="
    #sleep3
        if [ -f $TOMCAT_HOME/$WEBAPPS/$PROJECT.war ]; then
        echo "[INFO] If /usr/local/tomcat/webapps_jfadmin/admin.war exists,it will delete old war and its folder"
            echo "===================deleteing old war ================="
            rm -rf $TOMCAT_HOME/$WEBAPPS/$PROJECT.war
            rm -rf $TOMCAT_HOME/$WEBAPPS/$PROJECT
        else
            echo "===================old war not exits==================="
        fi
         
         echo "Copying /usr/local/autodeploy/temp/admin.war to /usr/local/autodeploy/tomcat/webapps_jfadmin"
         #echo "===================copying new war==================="
         cp $TEMP_DIR/$PROJECT.war $TOMCAT_HOME/$WEBAPPS/$PROJECT.war
     
        echo "===================backing war==================="
        echo "Creating the back folder "
        mkdir -p $BACK_DIR
        echo "Backing /usr/local/autodeploy/tomcat/webapps_jfadmin/admin.war to /usr/local/autodeploy/back/admin,and named by date"
        cp $TOMCAT_HOME/$WEBAPPS/$PROJECT.war $BACK_DIR/"$PROJECT"_`date +%Y%m%d%H%M%S`.war
     
        #echo "===================deleteing temp file==================="
        echo "Deleting /usr/local/autodeploy/temp/admin/admin.war"
        rm -rf $TEMP_DIR/$PROJECT.war
        #start tomcat
        #echo "===================starting tomcat==================="
         #$TOMCAT_HOME/bin/startup.sh
        echo "===================finished==========================!"
    else
         echo "===================temp file not exits==================="
    fi

     

    2、发布

      进入jobs列表,点击构建即可

     

    构建成功,如下图所示

     

    四、附属

    4.1 Jenkins部署流程图

         

  • 相关阅读:
    重构的信号
    枚举类返回Map键值对,绑定到下拉框
    js onclick函数中传字符串参数的问题
    python opencv3 矩形 圆形边框
    python opencv3 轮廓检测
    python opencv3 滤波器 卷积核
    python opencv3 窗口显示摄像头的帧
    python opencv3 显示一张图片
    python opencv3 获取摄像头视频
    python opencv3 视频文件的读写
  • 原文地址:https://www.cnblogs.com/chenchen-tester/p/6408815.html
Copyright © 2011-2022 走看看