一、配置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,并构建即可

   

jenkins+tomcat自动化部署的更多相关文章

  1. gitlab与jenkins的自动化部署(通过webhook与ansilble)

    gitlab与jenkins的自动化部署(通过webhook与ansilble) 1.部署介绍 gitlab服务器:192.168.1.49:80jenkins服务器:192.168.1.49:818 ...

  2. 搭建jenkins实现自动化部署

    搭建jenkins实现自动化部署 一.安装jenkins 1.添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo https://p ...

  3. Tomcat 自动化部署

    Tomcat 自动化部署脚本 使用方法: ./autodeploy.sh test 其中autodeploy.sh 为脚本的文件名, test为war的文件名. #!/bin/sh now=`date ...

  4. CentOS下Docker与.netcore(四)之 三剑客之一Docker-machine+jenkins简单自动化部署

    CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.netcore(二) 之 Dockerfile CentOS下Docker与.netcore(三)之 三剑客 ...

  5. 基于 Jenkins Pipeline 自动化部署

    最近在公司推行Docker Swarm集群的过程中,需要用到Jenkins来做自动化部署,Jenkins实现自动化部署有很多种方案,可以直接在jenkins页面写Job,把一些操作和脚本都通过页面设置 ...

  6. jenkins搭建自动化部署平台(svn+tomcat重启)

    原文链接:http://blog.csdn.net/zjs40/article/details/51818322 jenkins 自动化部署和集成代码的平台 可以将Git svn 上的代码 check ...

  7. 基于【SpringBoot】的微服务【Jenkins】自动化部署

    最近,也是抽空整理了一些在工作中积累的经验,通过博客记录下来分享给大家,希望能对大家有所帮助: 一.关于自动化部署 关于自动化部署的优点,我就不在这里赘述了:只要想想手工打包.上传.部署.重启的种种, ...

  8. Centos7.6上利用docker搭建Jenkins来自动化部署Django项目

    一般情况下,将一个项目部署到生产环境的流程如下: 需求分析-原型设计-开发代码-内网部署-提交测试-确认上线-备份数据-外网更新-最终测试,如果发现外网部署的代码有异常,需要及时回滚. 整个过程相当复 ...

  9. 在阿里云Centos7.6上利用docker搭建Jenkins来自动化部署Django项目

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_84 一般情况下,将一个项目部署到生产环境的流程如下: 需求分析-原型设计-开发代码-内网部署-提交测试-确认上线-备份数据-外网更 ...

随机推荐

  1. 老生常谈系列之Aop--AspectJ

    老生常谈系列之Aop--AspectJ 这篇文章的目的是大概讲解AspectJ是什么,所以这个文章会花比较长的篇幅去解释一些概念(这对于日常开发来说没一点卵用,但我就是想写),本文主要参考Aspect ...

  2. grafana v8.0+ 隐藏表格字段

    Select panel title → Inspect → Panel JSON Set "type" to "table-old" Apply The vi ...

  3. deepin安装jdk配置环境

    下载一个jdk压缩包https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.tar.gz 这个包,不用安装,下下来,直接解压,然 ...

  4. 如何利用 React Hooks 管理全局状态

    如何利用 React Hooks 管理全局状态 本文写于 2020 年 1 月 6 日 React 社区最火的全局状态管理库必定是 Redux,但是 Redux 本身就是为了大型管理数据而妥协设计的- ...

  5. 对象、Map、Set、WeakMap、WeakSet

    对象.Map.Set.WeakMap.WeakSet 本文写于 2020 年 11 月 24 日 总的来说,Set 和 Map 主要的应用场景分别在于数据重组和数据储存.Set 是一种叫做「集合」的数 ...

  6. 992. Sort Array By Parity II - LeetCode

    Question 992. Sort Array By Parity II Solution 题目大意:给一个int数组,一半是奇数一半是偶数,分别对偶数数和奇数数排序并要求这个数本身是偶数要放在偶数 ...

  7. 好客租房32-事件绑定this指向(class实例方法)

    class实例方法 利用箭头函数的class实例方法 //导入react import React from 'react'   import ReactDOM from 'react-dom' // ...

  8. 万字+28张图带你探秘小而美的规则引擎框架LiteFlow

    大家好,今天给大家介绍一款轻量.快速.稳定可编排的组件式规则引擎框架LiteFlow. 一.LiteFlow的介绍 LiteFlow官方网站和代码仓库地址 官方网站:https://yomahub.c ...

  9. 面试突击51:为什么单例一定要加 volatile?

    单例模式的实现方法有很多种,如饿汉模式.懒汉模式.静态内部类和枚举等,当面试官问到"为什么单例模式一定要加 volatile?"时,那么他指的是为什么懒汉模式中的私有变量要加 vo ...

  10. mac安装git、node

    1.需要先安装homebrew(之前的文章里有) 2.安装git brew install git 3.安装node brew install node 3.1.安装成功后,查看版本号 node -v ...