jenkins+tomcat自动化部署

一、配置tomcat

  tomcat版本:tomcat-9.0.39

  vim /usr/local/tomcat-9.0.39/conf/tomcat-users.xml
  <tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager-script"/>
  <role rolename="manager-gui"/>
  <role rolename="manager-status"/>
  <role rolename="admin-gui"/>
  <role rolename="admin-script"/>
  <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/>
  </tomcat-users>

  可选项,如果登陆失败则修改context.xml文件,注释掉下面的配置;
  vim /usr/local/tomcat-9.0.39/webapps/host-manager/META-INF/context.xml
  <!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
  allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />
  -->

二、构建一个自由风格的软件项目(git地址配置不再赘述)

  1、安装Deploy to container插件;(自动化部署tomcat war包所用插件,不适用于jar包);

  2、在jenkins上添加tomcat凭证,就是在tomcat中配置的账户密码;

  3、构建后操作配置      

               

  4、上面3点配置完成后点击构建,查看控制台日志

        

  5、查看tomcat工作目录下查看是否有刚才的生成的war包;  

   

三、构建一个maven项目

  1、安装插件Maven Integration;

  这地方有个小坑,就是在jenkins的插件管理器中安装Manve插件会大概率失败,因为有依赖没有被安装,所以更换了国内源也有问题,没有解决,会有此类报错;

  

  如上图所示:要安装Manve要先安装Javadoc,在上图中的地址中会生成javadoc.jpi.tmp和maven-plugin.jpi.tmp的临时文件,在这个临时文件中会体现出一个关于hpi后缀的下载地址,所以解决方法就是去jenkins官网下载关于javadoc.hpi和maven的hpi文件;地址:https://plugins.jenkins.io/ui/search/

      

       

    

   下载完成之后,jenkins的插件管理--->告警中将hgi文件导入安装即可;也不用重启jenkins即可生效;

    

  2、构建一个maven项目配置

    1)填写git代码地址并指定分支,这里不做赘述;

    2)build,这里构建命令可以不用写mvn因为maven项目会默认加上mvn;

    

    3)构建后操作

    

  3、开始构建,并查看控制台是否有报错

    

四、构建一个流水线项目

  Pipeline是一套运行在Jenkins上的工作流框架,实现单个任务难以完成的复杂流程编排和可视化工作;Pipeline是Groovy语言实现的,但是jenkins很友好的提供了生成代码的可视化工具;Pipeline支持两种语法:declarative(声明式)和Scripted Pipeline(脚本式)语法;

  Pipeline有两种创建方法:

    1)直接在Jenkins的Web UI中生成脚本

    2)创建一个Jenkinsfile脚本放到项目源码库中

  1、安装插件Pipeline插件

  2、配置流水线项目语法

    

  3、根据jenkins自带的工具生成代码,以上图中的hello world为蓝本添加;在流水线配置框最下面有一个流水线语法的按钮,这个就是自动生成工具;

    1)拉取代码选择:checkout: Check out from version control

    2)构建代码选择:sh: Shell Script

      Shell Script: mvn clean package

    3)发布代码选择:deploy: Deploy war/ear to a container

  4、最终就拼装成了相对完整的流水线构建代码

pipeline {
  agent any
  stages {
    stage('push Object') { 
      steps {
        checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '114e966f-ada2-4022-8d37-283076e95faa', url: 'http://gitlab.test.com/zhangzhide/web_demo.git']]])
      }
    }
    stage('build Object') {
      steps {
        sh 'mvn clean package'
      }
    }
    stage('publish Object') {
      steps {
        deploy adapters: [tomcat9(credentialsId: '5f5123cd-7ca5-468d-951a-4666ff0ab891', path: '', url: 'http://192.168.31.120:8080')], contextPath: null, war: 'target/*.war'
      }
    }
  }
}

  5、保存并开始构建,查看控制台构建过程

    

  6、通过放入项目源码库中的Jenkinsfile脚本来构建流水线项目(这步是前面2到4的集合,功能相同,二选其一即可;)

    1)将前面生成的Pipeline代码放入idea工具项目中,该文件名支持自定义,但是最好还是叫Jenkinsfile;因为jenkins的配置项中默认叫Jenkinsfile;

     

    2)配置jenkins,并构建即可

      

原文地址:https://www.cnblogs.com/zhangzhide/p/13982625.html