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,并构建即可

jenkins+tomcat自动化部署的更多相关文章
- gitlab与jenkins的自动化部署(通过webhook与ansilble)
gitlab与jenkins的自动化部署(通过webhook与ansilble) 1.部署介绍 gitlab服务器:192.168.1.49:80jenkins服务器:192.168.1.49:818 ...
- 搭建jenkins实现自动化部署
搭建jenkins实现自动化部署 一.安装jenkins 1.添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo https://p ...
- Tomcat 自动化部署
Tomcat 自动化部署脚本 使用方法: ./autodeploy.sh test 其中autodeploy.sh 为脚本的文件名, test为war的文件名. #!/bin/sh now=`date ...
- CentOS下Docker与.netcore(四)之 三剑客之一Docker-machine+jenkins简单自动化部署
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.netcore(二) 之 Dockerfile CentOS下Docker与.netcore(三)之 三剑客 ...
- 基于 Jenkins Pipeline 自动化部署
最近在公司推行Docker Swarm集群的过程中,需要用到Jenkins来做自动化部署,Jenkins实现自动化部署有很多种方案,可以直接在jenkins页面写Job,把一些操作和脚本都通过页面设置 ...
- jenkins搭建自动化部署平台(svn+tomcat重启)
原文链接:http://blog.csdn.net/zjs40/article/details/51818322 jenkins 自动化部署和集成代码的平台 可以将Git svn 上的代码 check ...
- 基于【SpringBoot】的微服务【Jenkins】自动化部署
最近,也是抽空整理了一些在工作中积累的经验,通过博客记录下来分享给大家,希望能对大家有所帮助: 一.关于自动化部署 关于自动化部署的优点,我就不在这里赘述了:只要想想手工打包.上传.部署.重启的种种, ...
- Centos7.6上利用docker搭建Jenkins来自动化部署Django项目
一般情况下,将一个项目部署到生产环境的流程如下: 需求分析-原型设计-开发代码-内网部署-提交测试-确认上线-备份数据-外网更新-最终测试,如果发现外网部署的代码有异常,需要及时回滚. 整个过程相当复 ...
- 在阿里云Centos7.6上利用docker搭建Jenkins来自动化部署Django项目
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_84 一般情况下,将一个项目部署到生产环境的流程如下: 需求分析-原型设计-开发代码-内网部署-提交测试-确认上线-备份数据-外网更 ...
随机推荐
- CentOS 8及以上版本配置IP的方法,你 get 了吗
接上篇文章讲了 Ubuntu 18及以上版本的配置方法,本文再来讲讲 CentOS 8 及以上版本配置 IP 的方法. Centos/Redhat(8.x) 配置 IP 方法 说明:CentOS 8 ...
- Redisson报错
org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured a ...
- 使用CSS实现《声生不息》节目Logo
声明:本文涉及图文和模型素材仅用于个人学习.研究和欣赏,请勿二次修改.非法传播.转载.出版.商用.及进行其他获利行为. 背景 <声生不息> 是芒果TV.香港电视广播有限公司和湖南卫视联合推 ...
- 网络协议之:sctp流控制传输协议
目录 简介 TCP有什么不好 sctp的特点 总结 简介 要讲网络协议,肯定离不开OSI(Open System Interconnection)的七层模型. 我们一般关注的是网络层之上的几层,比如I ...
- KMP算法(改进的模式匹配算法)——next函数
KMP算法简介 KMP算法是在基础的模式匹配算法的基础上进行改进得到的算法,改进之处在于:每当匹配过程中出现相比较的字符不相等时,不需要回退主串的字符位置指针,而是利用已经得到的部分匹配结果将模式串向 ...
- Scalable Multi-Party Private Set-Intersection-解读
本文记录阅读该paper的笔记. 摘要 本文给出两种MPSI协议,采用的是星型拓扑结构,即有一个leader,需要和其他参与者交互.优点是并非所有各方都必须同时在线: (1)能抗半诚实攻击 通信复杂度 ...
- SQL语言DDL
MySQL数据库基本操作-DDL -- ctrl+/和# :注释 -- SQL语言不区分大小写: DDL:数据定义语言: 对数据库的常用操作: -- 查看所有的数据库: show databases; ...
- NOI Online 2022 一游
NOI Online 2022 一游 TG 啊,上午比提高,根据去年的经验,题目配置估计那至少一黑 所以直接做 1 题即可.(确信) 总体:估分 140,炸了但没完全炸 奇怪的过程 开题:3 2 1 ...
- 架构师必备:系统容量现状checklist
正如飞机在起飞前,机长.副机长要过一遍checklist检查,确认没问题了才能起飞.楼主也整理了一个系统容量现状checklist,方便对照检查.本文搭配架构师必备:如何做容量预估和调优,食用更佳. ...
- 3.shell脚本循环试题
shell脚本循环试题 1.计算从1到100所有整数的和 #!/bin/bash a=0 for i in {1..100} #1到100 #每次循环变量i的值也为循环次数 do a=$[ $a + ...