Jenkins系列二通过Deploy war/ear to a container方式部署maven项目,maven聚合项目到Tomcat

  • 环境
  • Tomcat
    • 下载
    • 安装
  • Jenkins
    • 安装额外插件
    • 配置环境
    • 配置Item
    • 构建项目
  • 总结

Jenkins系列一Linux环境安装Jenkins
Jenkins系列二通过Deploy方式部署maven项目,maven聚合项目到Tomcat
Jenkins系列三通过脚本方式部署maven项目,maven聚合项目到Tomcat
Jenkins系列四通过脚本方式部署maven项目,maven聚合项目,前端VUE的springboot项目

环境

  • Linux版本:CentOS7.2
  • JDK版本:1.8
  • Maven版本:3.6.0
  • Tomcat版本:8.5.51
  • Jenkins版本:2.270
  • 假定WEB服务是demo,安装目录:/opt

Tomcat

下载

https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.51/bin/

安装

  1. 将apache-tomcat-8.5.51.tar.gz上传到服务器/opt目录
  2. 解压文件,/opt目录下执行:tar -zxvf apache-tomcat-8.5.51.tar.gz
  3. Tomcat重命名,/opt目录下执行:mv apache-tomcat-8.5.51 demo
  4. 修改端口,防止端口冲突,/opt/demo/conf目录下执行:vim server.xml,根据实际情况修改如下端口

  5. 配置用户名密码角色,/opt/demo/conf目录执行:vim tomcat-users.xml
    配置用户密码角色(自行修改用户名密码)
<role rolename="tomcat"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat" password="123" roles="tomcat,manager-gui,manager-script,manager-jmx,manager-status"/>


6. 修改tomcat访问限制,/opt/demo/webapps/manager/META-INF目录下执行:vim context.xml
注释Value标签

7. 启动tomcat,/opt/demo/bin目录下执行:./startup.sh
8. 访问http://ip:port/manager/text/list,输入用户名密码

Jenkins

安装额外插件

登陆到Jenkins后,菜单依次【Manager Jenkins】【Manager Plugins】【可选插件】输入下面的插件下载并安装,重启。(根据自己所需功能选择插件)

  • Subversion(SVN)
  • Maven Integration(maven)
  • Deploy to container(部署打包)

配置环境

登陆到Jenkins后,菜单依次【Manager Jenkins】【Global tool Configuration】配置如下环境

  • 【Maven配置】的【默认 settings 提供】【默认全局 settings 提供】,配置maven的setting.xml文件
  • 【JDK】的【别名】【JAVA_HOME】
  • 【Maven】的【Name】【MAVEN_HOME】

配置Item

  • 新建Item

  • 输入任务名称,选择【构建一个maven项目】,确定

  • 【General】根据需要填写

  • 【源码管理】根据实际选择Git、Subversion。添加凭证并选择。如果是聚合项目,这里选择父项目地址

  • 【构建触发器】【构建环境】

  • 【Pre Steps】

  • 【Build】清除缓存,重新打包,并忽略测试类clean package -Dmaven.test.skip=true

  • 【Post Steps】【构建设置】

  • 【构建后操作】

    • 【WAR/EAR files】如果是聚合项目,当前目录是父项目的目录,应根据实际情况填写,确保部署的war包目录是对的,eg:demo-web/target/demo-web.war
    • 【Context path】:上面的war包部署的路径。以webapps项目为根目录
    • 【Credentials】:# TOMCAT ## 安装 第5步中配置user/password

构建项目

选择列表最后的菜单构建项目,构建状态在左下角,可以点击【控制台输出】查看日志

总结

  • 构建项目时候要确保应用系统的Tomcat是启动的;jenkins通过容器部署的原理是使用Tomcat的【Manager】功能,所以配置Tomcat时候并没有配置tomcat的路径(我刚开始时候还纳闷为什么不配置Tomcat路径)
  • 因为上面的原因,当应用系统的Tomcat未启动时,是构建不成功的,所以应该【Pre Steps】或者【Post Steps】中写一个脚本,如果应用系统的Tomcat未启动时启动应用系统的Tomcat。
  • 因这种方式比较繁琐,所以并不推荐,推荐使用Jenkins系列三通过脚本方式部署maven项目,maven聚合项目到Tomcat

Jenkins系列二通过Deploy war/ear to a container方式部署maven项目,maven聚合项目到Tomcat相关推荐

  1. Jenkins构建项目时构建成功但不部署到tomcat的webapps下(Build step ‘Deploy war/ear to a container‘ marked build as fai)

    出现这个问题看看tomcat的配置哦 修改tomcat /conf/ tomcat-users.xml <tomcat-users> <role rolename="tom ...

  2. yolov8系列(二)-训练自己的目标分割模型,并web部署

    yolov8系列[二]-训练自己的目标分割模型,并web部署 0. 系统效果展示 1. yolov8训练高压电线覆冰模型 1.1. 制作高压电线覆冰数据 1.2. 数据转换成yolo格式数据 1.3. ...

  3. .Net Core2.1 秒杀项目一步步实现CI/CD(Centos7)系列二:k8s高可用集群搭建总结以及部署API到k8s...

    前言:本系列博客又更新了,是博主研究很长时间,亲自动手实践过后的心得,k8s集群是购买了5台阿里云服务器部署的,这个集群差不多搞了一周时间,关于k8s的知识点,我也是刚入门,这方面的知识建议参考博客园 ...

  4. Jenkins学习二:Jenkins安装与配置

    安装前关注: Q:应该选择哪个版本的Jenkins? A:如果你是公司正式使用推荐长期支持版(LTS),原因:稳定.如果你是学习,随便哪个版本都可以. Q:JDK应该安装哪个版本的? A:推荐安装JD ...

  5. ldap配置系列二:jenkins集成ldap

    ldap配置系列二:jenkins集成ldap jenkins简介 jenkins是一个独立的.开放源码的自动化服务器,它可以用于自动化与构建.测试.交付或部署软件相关的各种任务. jenkins官方 ...

  6. 微服务架构系列二:密码强度评测的实现与实验

    本文是继<微服务架构系列一:关键技术与原理研究>的后续,系列一中论述了微服务研究的背景和意义,主要调研了传统架构的发展以及存在的问题和微服务架构的由来,然后针对微服务架构的设计原则.容器技 ...

  7. Tomcat源码解析系列二:Tomcat总体架构

    Tomcat即是一个HTTP服务器,也是一个servlet容器,主要目的就是包装servlet,并对请求响应相应的servlet,纯servlet的web应用似乎很好理解Tomcat是如何装载serv ...

  8. SonarQube系列二、分析dotnet core/C#代码

    来源:https://www.cnblogs.com/7tiny/p/11342902.html [前言] 本系列主要讲述sonarqube的安装部署以及如何集成jenkins自动化分析.netcor ...

  9. [原]Jenkins(十二)---jenkins管理员用户无法登陆解决办法Access Denied

    /** * lihaibo * 文章内容都是根据自己工作情况实践得出. *如有错误,请指正 * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horiz ...

  10. Jenkins系列之——第四章 Jenkins编译一个Web项目并远程发布到Tomcat

    上一章讲了如何编译我们第一个项目 但是有时候我们不仅仅只是编译更多的是需要发布 在微服务普及之前我们最常用的就无非就是通过tomcat运行war格式的项目了,本章将介绍如何配置一个传统的Java we ...

最新文章

  1. 【转】MySQL的语句执行顺序
  2. 解决React Native报错:Error:Found unexpected optical bounds (red pixel)
  3. 浅析C++的三大循环-以100以内的质数求解为例
  4. dateutil 日期计算_日期时间 - 日期时间工具-DateUtil - 《Hutool 参考文档》 - 书栈网 · BookStack...
  5. 吴恩达点赞的deeplearning.ai课程总结
  6. ASP/COM+组件开发辅助软件之补充
  7. 经验原石_经验分享:挑战翡翠原石,新手实战前应做哪些准备
  8. hihoCoder太阁最新面经算法竞赛17
  9. arduino mega针脚_Arduino MEGA中文数据手册
  10. Ribbon 界面介绍(1)
  11. excel图片根据表格内容动态变化
  12. 企业邮箱服务器如何设置?
  13. 元数据编码和传输标准(METS)
  14. Blend for Visual Studio 概述
  15. 信息安全密码学实验三:密码学数学基础实验
  16. 1020 月饼 (25 分)
  17. 忍看朋辈离职去,怒向HR要加薪
  18. python爬虫数据分析项目 双十一_Python爬取淘宝商品数据,价值千元的爬虫外包项目!...
  19. Android pdf转换bitmap保存到本地
  20. 利用JS调用手机摄像头小功能源码

热门文章

  1. java程序的运行方式
  2. 对shell的简单认识
  3. 转:使用Android API最佳实践
  4. 数据结构基础_二分法查找
  5. 值类型、引用类型 再次理解
  6. HCIE-Security Day12:补充包过滤和安全策略的概念
  7. Security+ 学习笔记49 事件调查
  8. TCP Server 实现 RPN计算器(Python)
  9. 2021年软考网络工程师备考资料
  10. 解决Ubuntu18.04下VLC打不开的问题